【发布时间】:2017-09-18 20:28:58
【问题描述】:
我正在尝试使用正则表达式在网站中查找类别。
我输入了(?<=class="category-section" data-id=")(.*)(?=" id="nav)
但它会将整个字符串返回给我,我看到它从data-id=" 之后的第一个模式开始,直到结束模式有" id="nav
例如:
<div class="category-section" data-id="Motors" id="nav-1">
<div class="category-section" data-id="Fashion" id="nav-2">
我希望在比赛中获得 Motors and Fashion 但它会回来
Motors" id="nav-1"> <div class="category-section" data-id="Fashion
我不明白....
【问题讨论】:
-
data-id=(['"]?)(.*?)\1- 第二个捕获组包含您想要的内容,尽管您确实应该为此使用 XML 解析器。 -
强制:**不要使用正则表达式来解析 HTML! **
-
如果你在 Notepad++ 中做某事,你应该使用这个
(?<=data-id=")(.*)(?=") -
@TomLord 请向 OP 解释 为什么 用正则表达式解析 HTML 是一条悲伤之路。只是说“不要那样做”并没有多大帮助。
-
您尝试用哪种语言实现此功能?
标签: regex html-parsing