我有:
myString = String.new("Test String which should end here here")
我希望matchString
为"String which should end here"
。我做了:
matchString = myString[/\String which\b.*here?/,0]
matchString
是"String which should end here here"
。匹配将持续到第二个'here'
字的结尾。我尝试在?
之后添加非贪婪的'here'
,但它不起作用。
如何在第一个'here'
之后停止匹配?
答案 0 :(得分:1)
将非贪婪的?
添加到.*
:
matchString = myString[/\String which\b.*?here?/,0]
答案 1 :(得分:1)
如评论.*
中所述,贪婪,你需要让它变得懒惰。使用\A
也意味着字符串的开头。
str = "Test String which should end here here"
str[/\A.*?here/] #=> "Test String which should end here"
不要将camelCase用于变量,请使用上面的snake_case。
答案 2 :(得分:0)
myString[/\String which\b.*?here/]
#=> "String which should end here"