我自己想不出来,我必须匹配以 ASP.
开头并以 _aspx
结尾的字符串,但我需要排除开头的匹配项(ASP.
部分)。
例如,
string input = "random stack trace text ASP.filename_aspx random text";
Regex r = new Regex("Regular expression needed!!!");
var mc = r.Matches(s);
foreach (var item in mc)
{
Console.WriteLine(item.ToString());
}
它需要输出这样的东西,
filename_aspx
最佳答案
这是一份 positive lookbehind assertion 的工作:
Regex r = new Regex(@"(?<=\bASP\.)\S+_aspx");
(?<=\bASP\.)
确保 ASP.
出现在比赛开始位置之前,但不包括在比赛结果中。 \b
是 word boundary anchor断言我们不匹配 WASP
, 只有 ASP
.
\S+
匹配一个或多个非空白字符(假设您的文件名不包含空格)。
关于c# - 排除开头但包含结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17972550/