Javascript 使用html字符串中的id获取名称的正则表达式
我正在尝试使用正则表达式解析html字符串 完整的html加载在一个字符串变量中,我知道元素的id。如何获取该特定元素的名称 在下面的示例中,id为Javascript 使用html字符串中的id获取名称的正则表达式,javascript,node.js,regex,Javascript,Node.js,Regex,我正在尝试使用正则表达式解析html字符串 完整的html加载在一个字符串变量中,我知道元素的id。如何获取该特定元素的名称 在下面的示例中,id为字段选项Real fc,预期结果为f4186d62184e277e2968ece68da25a860 有人能帮我用正则表达式来匹配这个名字吗? value属性也是唯一的,html格式保持不变 <li class="field-choice field-choice-radio "> <input type="che
字段选项Real fc
,预期结果为f4186d62184e277e2968ece68da25a860
有人能帮我用正则表达式来匹配这个名字吗?
value属性也是唯一的,html格式保持不变
<li class="field-choice field-choice-radio ">
<input type="checkbox" data-disable-children="true" data-validation-count="1..6" data-validation-count-message="Must specify within 1 and 6 items."
name="f4186d62184e277e2968ece68da25a860"
value="131233102"
id="field-options-Real-fc" class=""/>
<label for="field-options-Real-fc">
<span>Real FC</span>
</label>
</li>
皇家足球俱乐部
您可以使用正向前瞻查找id,然后使用捕获组($1
)提取id本身,在下一个双引号处终止该组
(?=id=")id="(.*)"\s
编辑:这仍然适用于您的
最好使用像BeautifulSoup(python)这样的XML解析器 要覆盖所有(两)个可能的订单或属性,请使用“前瞻性”:
/\<(?=(?:[^>]|"[^"]*")*id="field-options-Real-fc")(?:[^>]|"[^"]*")*name="([^"]*)"/
/\]\\”[^“]*”*id=“field options Real fc”)(?:[^>]|“[^”]*”*name=“([^”]*”)/
此处需要使用(?:[^>]|“[^”]*”
来禁止使用“>”字符,除非使用引号
对于这类事情,你不应该使用正则表达式,因为如果1000个不同的特殊情况中的任何一个发生(
id=”“
在name=”“
之前/之后移动,name=”“
,HTML中任何地方的空格(这是有效的)等),正则表达式都会失效。
/\<(?=(?:[^>]|"[^"]*")*id="field-options-Real-fc")(?:[^>]|"[^"]*")*name="([^"]*)"/