[問題] Regex 字串最多一個大寫字母

看板C_and_CPP (C/C++)作者 (IDL)時間12年前 (2014/02/19 20:16), 編輯推噓9(903)
留言12則, 4人參與, 最新討論串1/1
Boost Regex 字串6位且最少一個大寫字母如下 (?=.*[[:upper:]]).{6} 如果6個字元中且最多一個大寫字母應該怎麼寫 123456 ok A12345 ok 1A2345 ok AB1234 不ok A123456 不ok (?=.*[[:upper:]]?).{6} 試了好久 試不出來 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.81.78.241

02/19 21:07, , 1F
(?!.*[[:upper:]].*[[:upper:]]).{6}
02/19 21:07, 1F

02/19 21:20, , 2F
感謝
02/19 21:20, 2F

02/20 08:11, , 3F
請問1F, 是先.{6}再讀(?!.*[[:upper:]].*[[:upper:]])
02/20 08:11, 3F

02/20 08:12, , 4F
對吧? btw, 有RegExp板喔~
02/20 08:12, 4F

02/20 09:15, , 5F
1樓在AB1234是ok的,需修正。
02/20 09:15, 5F

02/20 10:09, , 6F
^(?!.{7,})([^A-Z]?[A-Z]?[^A-Z]{5,6}) 待驗證
02/20 10:09, 6F

02/20 10:32, , 7F
修正 ^(?!.{7,})([^A-Z]{0,6}[A-Z]?[^A-Z]{0,6})
02/20 10:32, 7F

02/20 11:59, , 8F
我這邊跑起來沒問題啊
02/20 11:59, 8F

02/21 08:54, , 9F
因為懶得寫,我是用online tester的網頁去測的。
02/21 08:54, 9F

02/21 12:05, , 10F
那我只能說用boost::regex_match跑起來是對的..
02/21 12:05, 10F

02/21 12:08, , 11F
可能syntax根本就有差
02/21 12:08, 11F

02/21 12:08, , 12F
AB理論上要被前面的lookahead抓到 然後判定match失敗
02/21 12:08, 12F
文章代碼(AID): #1J1A2h_h (C_and_CPP)
文章代碼(AID): #1J1A2h_h (C_and_CPP)