Regex 正则表达式非贪婪命名捕获组

Regex 正则表达式非贪婪命名捕获组,regex,capturing-group,Regex,Capturing Group,我需要解析下面的文本并读取id和name的值,name是可选的。我正在获取“txt”name=“thistext”作为id的值 输入id=“txt”name=“thistext” 这是我正在使用的正则表达式- input\s+id=“(?*)(“+?)(?:(\s+name=“(?*)(*)))? 完全匹配0-30input id=“txt”name=“thisttext” 组id10-29txt“name=“thisttext 第2组。29-30“您的正则表达式几乎是正确的,只是您需要在id命

我需要解析下面的文本并读取id和name的值,name是可选的。我正在获取“txt”name=“thistext”作为id的值

输入id=“txt”name=“thistext”

这是我正在使用的正则表达式-

input\s+id=“(?*)(“+?)(?:(\s+name=“(?*)(*)))?

完全匹配0-30
input id=“txt”name=“thisttext”
id
10-29
txt“name=“thisttext

第2组。29-30

您的正则表达式几乎是正确的,只是您需要在
id
命名组中执行非贪婪捕获,并将正则表达式更改为此

input\s+id="(?<id>.*?)("+?)(?:(\s+name="(?<name>.*)(.*?")))?
input\s+id=“(?*?”(?)(?:(\s+name=“(?*)(?)))?

另外,你的正则表达式过于复杂,你可以这样简化

input\s+id="(?<id>[^"]*)"(?:\s+name="(?<name>[^"]*)")?
input\s+id=“(?[^”]*)”(?:\s+name=“(?[^”]*)”?

您可以添加示例输入和预期输出吗?以及到目前为止您已经获得的内容吗?您可以尝试此
input\s+id=“(?*?)(:(“+?)(?:(\s+name=“(?*?)(?*?))?