正则表达式哪里写错了吗。匹配不上?

2020-07-16 17:46:27 +08:00
 leihongjiang
(.*)
1917 次点击
所在节点    程序员
14 条回复
wangritian
2020-07-16 17:52:38 +08:00
你的截图包含答案,把第二个勾挑上
wnpllrzodiac
2020-07-16 17:53:49 +08:00
空格数量,全角半角字符?
alan0liang
2020-07-16 17:56:47 +08:00
没记错的话「.」是不包含换行符的,应该至少需要用「<div ...>([.\n]*)</div>」
alan0liang
2020-07-16 17:58:46 +08:00
抱歉打错了,应该是「<div ...>((?:.|\n)*)</div>」
leihongjiang
2020-07-16 18:02:58 +08:00
@wangritian 匹配到了 没上色。。。。难怪。
leihongjiang
2020-07-16 18:03:54 +08:00
@alan0liang </div> 不是唯一 该怎么提取呢 。提取的内容在第一个</div>中间
assilzm
2020-07-16 18:17:30 +08:00
首先 .不能匹配垂直空白符(\r\n )
其次 如果 div 存在嵌套的情况 不建议使用正则 这涉及到标签之间需要平衡 (.NET 可以使用平衡组获取,不过根据你的例子来说可能也比较麻烦)
建议用 xpath 或者 sizzle 之类的 dom 分析工具来解析
feilong
2020-07-16 18:47:12 +08:00
用[\s\S]+匹配, .*匹配不了换行
lovecy
2020-07-16 18:56:07 +08:00
@leihongjiang *号后面加个?就行了,代表最小程度匹配,匹配到第一个<div>就会停止,
sowish
2020-07-16 19:24:50 +08:00
.*换成[\s\S*]
sowish
2020-07-16 19:25:11 +08:00
@sowish 错了,是[\s\S]*
leihongjiang
2020-07-17 00:52:12 +08:00
@lovecy 换篇文章 正文中间出现了 div 。郁闷了
mengzhuo
2020-07-17 09:31:03 +08:00
大哥,格式化文档就要用 html parser 啊!!!
正则匹配改一个 attr 你就 GG 了
myCupOfTea
2020-07-23 09:49:39 +08:00
.*修改成 [\s\S\r]*

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

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

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

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

© 2021 V2EX