簡體   English   中英

正則表達式非貪婪命名捕獲組

[英]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="thistexttxt" 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM