【发布时间】:2015-08-27 22:29:07
【问题描述】:
我有这样一个字符串:
<span>test text 1</span> some text <span>test text 2<span>test text 3</span></span>
我想检索第二种情况(在“一些文本”之后,带有嵌套跨度),即 <span>test text 2<span>test text 3</span></span> 并匹配顶级跨度的文本和内部跨度中的文本:test text 2 和 test text 3(但不是 @ 987654327@)
我的正则表达式:<span.*?>(.*?)<span.*?>(.*?)<\/span><\/span>
但我明白了:
我应该如何修复正则表达式以获取 test text 2 和 test text 3 匹配组并忽略第一个跨度(不嵌套)?
【问题讨论】:
-
如果这是 HTML,你不能在 Ruby 中使用 HTML 解析器吗?
-
@stribizhev 嗯..好问题!但我相信正则表达式有一个简单的解决方案)
-
是的,它可以用正则表达式完成,但它看起来很难看,而且答案很可能被否决。