[英]Regex non-greedy named capturing groups
我需要解析以下文本並讀取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
組txt" name="thistext
"
您的正則表達式幾乎是正確的,除了,您需要在名為id
組中進行非貪婪捕獲,並將正則表達式更改為此,
input\s+id="(?<id>.*?)("+?)(?:(\s+name="(?<name>.*)(.*?")))?
另外,您的正則表達式過於復雜,可以簡化,
input\s+id="(?<id>[^"]*)"(?:\s+name="(?<name>[^"]*)")?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.