[英]Regular expression (.NET): how to get a group in the middle
我想在中間找一個小組。 例如:
startGOALend => GOAL
GOALend => GOAL
GOAL => GOAL
我正在嘗試(start)?(.*)(end)?
,但不會導致所需的結果。
var regex = new Regex("(start)?(.*)(end)?");
if (text == null) return;
var match = regex.Match(text);
foreach (var group in match.Groups)
{
Console.Out.WriteLine(group);
}
它返回:
startGOALend
start
GOALend
我如何用正則表達式解決呢?
您要避免捕獲start
和end
組。 您可以通過在開頭添加?:
來避免捕獲一對括號的內容。
您還需要使對中間部分的捕獲變得懶惰,以使它不會捕獲作為中間部分一部分的end
。 您可以通過放置一個?
在*
。
因此,您總共得到:
(?:start)?(.*?)(?:end)?$
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.