Ruby Regexp:如何匹配字符串中由单词分隔的部分
我有这样一根弦:Ruby Regexp:如何匹配字符串中由单词分隔的部分,ruby,regex,Ruby,Regex,我有这样一根弦: 测试文本1一些文本测试文本2测试文本3 我想检索第二个案例(在“some text”之后,嵌套span),即测试文本2测试文本3,并匹配顶级span的文本和内部span中的文本:测试文本2和测试文本3(但不是测试文本1) 我的regexp:(.*)(.*) 但我明白了: 如何修复regexp以获得测试文本2和测试文本3匹配组并忽略第一个跨度(无嵌套)?这应该做: s = "<span>test text 1</span> some text <s
测试文本1一些文本测试文本2测试文本3
我想检索第二个案例(在“some text”之后,嵌套span),即测试文本2测试文本3
,并匹配顶级span的文本和内部span中的文本:测试文本2
和测试文本3
(但不是测试文本1
)
我的regexp:(.*)(.*)
但我明白了:
如何修复regexp以获得测试文本2
和测试文本3
匹配组并忽略第一个跨度(无嵌套)?这应该做:
s = "<span>test text 1</span> some text <span>test text 2<span>test text 3</span></span>"
matches = s.scan(/<span.*?>.*?<\/span.*?>/)
p matches[1] # "<span>test text 2<span>test text 3</span>"
s=“测试文本1一些文本测试文本2测试文本3”
匹配项=s.scan(/.*?/)
p匹配[1]#“测试文本2测试文本3”
我找到了解决方案
(?!<span.*<\/span>.*<span)<span.*?>(.*?)<span.*?>(.*?)<\/span><\/span>
(?!如果这是HTML,你不能在Ruby中使用HTML解析器吗?@Stribizev hmmm…。好问题!但我相信使用regexp有一个简单的解决方案)是的,可以使用regex完成,但它看起来很难看,答案很可能被否决。