Regex 如何通过正则表达式提取html属性

Regex 如何通过正则表达式提取html属性,regex,Regex,我想看看如何使用正则表达式从html标记中获取属性/值。是的,我知道可以使用xml/html解析器,但这是为了测试我在正则表达式中的能力。例如,在此html元素中: <input name=dir value=">"> <input value=">" name=dir > 我将如何提取: (?<name>...) and (?<value>...) (?…)和(?…) 一旦你匹配了某样东西,是否有可能“回到”比赛开始?例如:

我想看看如何使用正则表达式从html标记中获取属性/值。是的,我知道可以使用xml/html解析器,但这是为了测试我在正则表达式中的能力。例如,在此html元素中:

<input name=dir value=">">
<input value=">" name=dir >

我将如何提取:

(?<name>...) and (?<value>...)
(?…)和(?…)
一旦你匹配了某样东西,是否有可能“回到”比赛开始?例如:

<(?P<element>\w+).+(?:value="(?P<value>[^"])")@@@@.+(?:name="(?P<name>[^"])")

  • 是的,使用解析器是最好的方法
  • 如评论中所述,您无法(轻松地)在一次扫描中提取所有信息
  • 您可以通过几个正则表达式实现您想要的:
  • 测试


    测试。

    value=“>”
    :你在哪里看到的?@casimirithippolyte你能澄清一下你的评论吗?很肯定这个问题是指这不起作用的确切原因。整个返回到上一个字符串的开头是下推自动机所做的。正则表达式之类的常规语言无法处理的东西。@AER我明白了。所以基本上你需要做一些组合运算,才能在所有可能的位置上工作?你看不到,这就是为什么解析器存在的原因。如果你想训练正则表达式,试试吧
    input.*?name=(?'name'[^ ]+)
    
    input.*?value="(?'value'[^"]+)"