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

Chr*_*ier 1 ruby regex ruby-on-rails

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

谢谢 :)

-C

Tim*_*ker 7

/(.+)(?<!associated)_id$/
Run Code Online (Sandbox Code Playgroud)

将使用负面的lookbehind确保匹配的任何内容(.+)都不会结束associated.

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

/\A(?!.*associated_id$)(.+)_id$/
Run Code Online (Sandbox Code Playgroud)

这将断言不可能匹配从字符串associated_id的起始位置结束的字符串.