求大佬帮忙看看一个正则表达式

2021-12-24 11:30:50 +08:00
 dicc

想要匹配: <这个是 js 的标签>xxx</这个是 js 的标签>

不想匹配: <这个是 js 的标签>xxx</这个是 js 的标签> 这里还有其他数据 <这个是 js 的标签>aaa</这个是 js 的标签>

感谢。

1139 次点击
所在节点    问与答
8 条回复
mainjzb
2021-12-24 11:33:41 +08:00
关键词: 正则 非贪婪
通常加个?
dicc
2021-12-24 11:45:40 +08:00
算了,估计只有用 split 解决了
pendulum
2021-12-24 13:58:07 +08:00
<tag>.*?<\/tag>
balabalaguguji
2021-12-24 14:29:13 +08:00
Telegram
2021-12-24 14:34:29 +08:00
3 楼这种可以,加?,可以尽量少的匹配。

或者这样:
<tag>[^<]*</tag>
dicc
2021-12-24 14:59:53 +08:00
@pendulum 内容中有换行就不行,我之前用的是 [^\s\S] 代替 . 但是这样做就会匹配到我说的第二种情况
dicc
2021-12-24 15:04:44 +08:00
re.findall('<tag>[\s\S]*?<\/tag>', s) 可以了。。
@pendulum
jiejiss
2021-12-24 21:11:06 +08:00
<js 标签>
console.log("</js 标签>");
console.log("<js 标签>");
</js 标签>

用正则来解析 html ,就需要小心 corner case 。

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

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

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

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

© 2021 V2EX