精華區beta RegExp 關於我們 聯絡資訊
就是檢查輸入的字串, 不能出現符合 GM 開頭 然後後面接數字 例如 GM1 or GM005 之類 的, 請問這個要怎麼寫呢? 如果用一般字串函數去檢查可以很容易做到, 但是我想要用正規運算式去做, 但是正規運 算式一直找不到竅門, 寫不太出來... 請各位大大指導一下~ ps:沒有符合才為true 有符合為false 就是以下這個的相反 (^GM\d+){1} -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.130.112.242
MichaelHsin:如果不是非得在 regex 裡寫出來,就用上層程式做吧 10/19 15:53
MichaelHsin:grep -v, perl !~, etc. 10/19 15:53
chmate:negative lookahead assertion 但不是每種實作都有 10/19 22:45
buganini:^[^G][^M][^0-9]+ 這樣? 10/20 01:41
MichaelHsin:二樓++ 10/20 03:22
MichaelHsin: /^(?!GM\d+)/ # perl 這樣就可以了 10/20 03:22
> -------------------------------------------------------------------------- < 作者: DarkKiller (System hacked) 看板: RegExp 標題: Re: [問題] 請教各位一個正規運算式的寫法~ 時間: Sun Oct 21 10:10:00 2007 ※ 引述《noroi (noroi)》之銘言: : 就是檢查輸入的字串, 不能出現符合 GM 開頭 然後後面接數字 例如 GM1 or GM005 之類 : 的, 請問這個要怎麼寫呢? : 如果用一般字串函數去檢查可以很容易做到, 但是我想要用正規運算式去做, 但是正規運 : 算式一直找不到竅門, 寫不太出來... : 請各位大大指導一下~ : ps:沒有符合才為true 有符合為false 就是以下這個的相反 (^GM\d+){1} RE 的補集還是 RE,所以一定存在一個表示法符合你說的條件。 ^([^G]|G[^M]|GM[^0-9])*$ 這是你要的表示式。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.54.119