我有一根红宝石串:
str = "<TAG1>Text 1<TAG1>Text 2"
我想用gsub得到这样一个字符串:
want = "<TAG2>Text 1</TAG2><TAG2>Text2</TAG2>"
换句话说,我想保存
<TAG1>
之间的所有内容,或者:1)下一次出现“我能想到的最好的正则表达式是:regex = /<TAG1>(.*)(?:<|$)/
但问题是它将只匹配整个str,而我想要的是str中的两个匹配项(换句话说,字符串结尾字符($)似乎优先于“
最佳答案
/<TAG1>([^<]*)/
将与之匹配如果没有<
它会一直到字符串的末尾否则当它碰到<
时就会停止你的问题是也匹配<
另一种方法是做/<TAG1>(.*?)(?:<|$)/
,这使得*
不贪婪。
关于ruby - 简单的Ruby Regex问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4576733/