正则表达式(.NET):如何在中间获得一个组 我想在中间设一个小组。例如: startGOALend=>GOAL GOALend=>目标 目标=>目标
我正在尝试正则表达式(.NET):如何在中间获得一个组 我想在中间设一个小组。例如: startGOALend=>GOAL GOALend=>目标 目标=>目标,.net,regex,.net,Regex,我正在尝试(开始);(.*)(结束),但它不会产生所需的结果 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 开始 牧羊人 我如何通过正则表达式解决它?您希
(开始);(.*)(结束)
,但它不会产生所需的结果
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
开始
牧羊人
我如何通过正则表达式解决它?您希望避免捕获
开始
和结束
组。通过将?:
放在开头,可以避免捕获一对括号的内容
您还需要将中间部分的捕获设置为延迟,这样它就不会将end
捕获为中间部分的一部分。您可以通过在*
之后放置?
来完成此操作
总之,你会得到:
(?:start)?(.*?)(?:end)?$