在Rails中匹配以给定子字符串结尾的字符串,但某些情况除外

时间:2009-11-23 20:02:48

标签: ruby-on-rails ruby regex

我在rails应用程序中有一个正则表达式/(.+)_id$/,它匹配任何以_id结尾的字符串。我需要它来匹配除_id之外以associated_id结尾的任何字符串。我怎么能做到这一点?

thx:)

-C

2 个答案:

答案 0 :(得分:7)

/(.+)(?<!associated)_id$/

将使用负​​面的lookbehind来确保(.+)匹配的内容不会以associated结尾。

对于不支持lookbehind的语言,您可以使用:

/\A(?!.*associated_id$)(.+)_id$/

这将断言不可能将以associated_id结尾的字符串与字符串的起始位置匹配。

答案 1 :(得分:0)

我不是“regexpert”,所以我确信这可能有更好的方法,但我想出了

/(.+[^associated_id].+)_id$/