Javascript 使用html字符串中的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

我正在尝试使用正则表达式解析html字符串

完整的html加载在一个字符串变量中,我知道元素的id。如何获取该特定元素的名称

在下面的示例中,id为
字段选项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="([^"]*)"/