【发布时间】:2015-06-25 13:47:24
【问题描述】:
我有这个正则表达式:
(\S+)=[""']?((?:.(?![""']?\s+(?:\S+)=|[>""']))+.)[""']?
这个正则表达式将从 HTML 字符串中提取标签的名称和值,一切正常,但是,当我有一个字符时,正则表达式将捕获左侧引号和字符。
这是我的字符串:
<select title="Campo" id="6:7" style="width: auto; cursor: pointer;" runat="server" controltype="DropDownList" column="Dummy_6"><option value="0">Value:0</option><option selected="selected" value='1'>Value:1Selected!</option></select>
即使只有一个字符,我也不知道如何修改此正则表达式以正确捕获字符。
【问题讨论】:
-
您使用的是什么语言,您到底想匹配什么?我会考虑为此任务使用解析器而不是正则表达式。
-
对于每个愉快地抛出“不要使用正则表达式解析 html”的人来说,使用正则表达式从 html 中检索单个标签或内容是完全可以的。就像任何其他类型的文本一样。这不是解析。
-
我得到了属性和属性值的匹配,这是你想要匹配的吗?您能否提供所需输出的示例以及您现在得到的结果?
-
只有一个字符的值我得到这样的东西:“1,但我想得到这个:1 但是,当字符串大于一个字符时,一切顺利。
标签: html regex html-parsing