在一些Rails代码(黄瓜功能的步骤定义,javascripts,rails_admin gem)我发现这个正则表达式的部分:
string =~ /some regexp.+rules should match "(.*?)"/i
我有一些正则表达式的知识,我知道*和?符号是相似的,但星号意味着零和更多,问号的手段可能存在或不可能.
因此,使用符号组附近的问号使其在被测试的短语内不需要.什么是…好的…在不需要的组合附近使用它的技巧(跳过要求是使用星号afaik)?
解决方法
在量词之后(如*),具有不同的含义,使其成为“不客气”.所以默认情况下*尽可能地消耗*?比赛尽可能少.
在您的具体情况下,这与以下字符串相关:
some regexp rules should match "some string" or "another"
没有问号,正则表达式匹配完整的字符串(因为.*可以像其他任何东西一样消耗“)和一些字符串”或“另一个被捕获.使用问号,匹配将尽快停止(所以后…一些字符串“),并将捕获只有一些字符串.