我需要解析以下文本并读取id和name的值,并且 name是可选的。我正在获取“ txt” name =“ thistext”作为id的值。
输入id =“ txt” name =“ thistext”
这是我正在使用的正则表达式-
input\s+id="(?<id>.*)("+?)(?:(\s+name="(?<name>.*)(.*?")))?
完全匹配0-30 input id="txt" name="thistext"
组id
10-29 txt" name="thistext
第2组。29-30"
答案 0 :(得分:1)
您的正则表达式几乎是正确的,除了,您需要在您的id
命名组中进行非贪婪捕获,并将您的正则表达式更改为此,
input\s+id="(?<id>.*?)("+?)(?:(\s+name="(?<name>.*)(.*?")))?
此外,您的正则表达式过于复杂,可以这样简化,
input\s+id="(?<id>[^"]*)"(?:\s+name="(?<name>[^"]*)")?