簡體   English   中英

正則表達式(.NET):如何在中間找到一個組

[英]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

我如何用正則表達式解決呢?

您要避免捕獲startend組。 您可以通過在開頭添加?:來避免捕獲一對括號的內容。

您還需要使對中間部分的捕獲變得懶惰,以使它不會捕獲作為中間部分一部分的end 您可以通過放置一個? *

因此,您總共得到:

(?:start)?(.*?)(?:end)?$

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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