Regex 正则表达式非贪婪命名捕获组
我需要解析下面的文本并读取id和name的值,name是可选的。我正在获取“txt”name=“thistext”作为id的值 输入id=“txt”name=“thistext” 这是我正在使用的正则表达式-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命
input\s+id=“(?*)(“+?)(?:(\s+name=“(?*)(*)))?
完全匹配0-30input id=“txt”name=“thisttext”
组id
10-29txt“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=“(?*?)(?*?))?