我有一根红宝石串:

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/

10-14 08:40