为什么在 Ruby 中,前两个正则表达式不匹配,而第三个匹配?
str = 'ID: 4'
regex1 = /^(?<=ID: )\d+/
regex2 = /\A(?<=ID: )\d+/
regex3 = /(?<=ID: )\d+/
str.match(regex1) # => nil
str.match(regex2) #=> nil
str.match(regex3) #=> #<MatchData "4">
唯一的区别是^
or\A
字符,它们分别匹配行的开头和字符串的开头。似乎两者都应该匹配str
。