在像这样的建筑中
string.scan(regex){...}
或者
string.gsub(regex){...}
如何检查循环循环的匹配是否与原始字符串中的前一个相邻?例如,在
"abaabcaaab".scan(/a+b/){|match|
...
continued = ...
...
}
将有 3 个匹配项"ab"
、"aab"
和"aaab"
。在每个周期中,我希望它们的变量分别continued
为false
、true
和 ,false
因为"ab"
是第一个匹配周期,"aab"
与它相邻,并"c"
在下一个匹配之前中断"aaab"
。
"ab" #=> continued = false
"aab" #=> continued = true
"aaab" #=> continued = false
origuruma 中是否有一个锚点是指上一个匹配位置的结尾?如果是这样,那可以在正则表达式中使用。如果没有,我可能需要使用MatchData#offset
. 并在循环中进行一些计算。
顺便说一句,\G
origuruma 正则表达式中有什么?我的印象是它可能是我想要的锚,但我不确定它是什么。