请教下正则问题

2017-10-30 23:40:00 +08:00
 helloworld12

太久没写了,忘得有点严重

<span xxx...><a>xxx...</a></span> 

<span xxx...>xxx...</span> 

要怎么匹配上面的字符串?

以下是我想的正则表达式

r'<span[^>]*>[^</span>]*</span>'

问题是 [^</span>]* 没有匹配到 <a>xxx...</a>

现在回头看 前缀匹配,看得有点懵

谢谢啦

1182 次点击
所在节点    问与答
2 条回复
Rheinmetal
2017-10-31 01:32:07 +08:00
两个正则分别匹配咯
[^< /span>] 是不包 7ge 字符 xxxxxxx 里面有 span 这 几个字符 就漏了
比如你这个 a 就是这样
<span [^>]*>[^<]*</span>
<span[^>]*><a>[^<]*</a></span>
要不就是
考虑匹配两次 di 一次 span 然后 在结果里面找 a
为啥不用专门处理这个的 xpath 之类 的工具?
noqwerty
2017-10-31 01:45:48 +08:00
所以你到底是只想要字符串还是想要<span>里的所有内容?如果是字符串的话建议 xpath 或者 CSS selector,如果是所有内容的话:
r'<span[^>]*>(.*)</span>'

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/402096

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX