我在Ruby中工作,必須爲以下任務創建單個正則表達式,因爲我正在使用其他人的gem,它使用此正則表達式來匹配要在文本文件中處理的字段。我需要匹配字符串的開頭,任何字符集和下劃線,然後是不是1,2,9或10的任何多位整數,以及字符串的結尾。
也就是說,我想下面的匹配:如何創建一個匹配除Ruby中的某些字符串之外的模式的正則表達式?
foo_4
bar_8
baz_120
BUT NOT:
foo_1
bar_9
baz_10
我試圖
/^.+_(^(1|2|9|10))$/
,但沒有奏效因爲顯然^
唯一的 「否定」 字在括號中,而不是子匹配。
你好。由於這是你在Stack Overflow上的第一個問題,所以我編輯它看起來像一個在這裏被認爲是「寫得很好」的問題。請嘗試用更通用的單詞來描述您的問題(查看我寫的標題),以便其他人可以搜索您的問題並在遇到同樣問題時重新使用。另外,請注意格式化(閱讀技巧並點擊編輯頁面的'?'),因爲良好的格式是成功的關鍵。換句話說,歡迎來到SO! – 2010-08-17 18:27:41
您的意思是「匹配**字符串**的開頭」或「匹配**行**的開頭」。如果輸入可以包含新行,則會有所不同。 – 2010-08-18 10:41:31
所以,結尾整數必須是多位的,對嗎?如果是這樣的話,那麼你不需要檢查1,2或9,我會想。我試圖找到寫表達式,但我是正則表達式的newby。編輯:從不知道,當我完成這個你已經編輯你的文章。 :) – XstreamINsanity 2010-08-17 18:25:35