我在與_id
結尾的字符串相匹配的Rails應用程序正則表達式/(.+)_id$/
。我需要它匹配除associated_id
之外的以_id
結尾的任何字符串。我怎樣才能做到這一點?匹配的字符串,以給定的子串結束,除了某些情況下,在Rails的
THX :)
-C
我在與_id
結尾的字符串相匹配的Rails應用程序正則表達式/(.+)_id$/
。我需要它匹配除associated_id
之外的以_id
結尾的任何字符串。我怎樣才能做到這一點?匹配的字符串,以給定的子串結束,除了某些情況下,在Rails的
THX :)
-C
/(.+)(?<!associated)_id$/
將使用負回顧後,以確保無論是由(.+)
匹配在associated
並沒有結束。
對於不支持回顧後的語言,你可以這樣做:
/\A(?!.*associated_id$)(.+)_id$/
這將斷言,它不可能以匹配字符串的起始位置associated_id
結尾的字符串。
我不是一個「regexpert」,所以我敢肯定,有可能是一個這樣做的更好的辦法,但我想出了
/(.+[^associated_id].+)_id$/
我試圖做到這一點的軌道,如果我插在 「associated_id」 .match(/(+)(相關<)_id $ /。?!)我得到 語法錯誤:編譯錯誤 (IRB):4:未定義(?...)序列:/(.+ ?!)(<相關)_id從(IRB)$/ \t:4 – 2009-11-23 20:10:57
哦。 Ruby不支持向後看,我剛剛發現。將編輯。 – 2009-11-23 20:23:17
謝謝蒂姆:) – 2009-11-23 20:27:37