c# - 排除开头但包含结尾

标签 c# regex string match

我自己想不出来,我必须匹配以 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.出现在比赛开始位置之前,但不包括在比赛结果中。 \bword boundary anchor断言我们不匹配 WASP , 只有 ASP .

\S+匹配一个或多个非空白字符(假设您的文件名不包含空格)。

关于c# - 排除开头但包含结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17972550/

相关文章:

c# - C#中使用 "out"关键字的最佳实践

c# - 单击链接按钮时运行 "ping"命令

c - 如何动态居中对齐 char * 字符串中的文本以适应 C 中总共 16 个空格?

.net - WinDbg 没有告诉我字符串的根位置

c# - 编写正则表达式以搜索子字符串 C#

c# - COMException (0x80040154) : Class not registered when using AxAcroPDFLib

c# - Microsoft.Practices.EnterpriseLibrary.Data : execute multiple statements in one transaction

javascript - 插入 "lng": into string at specific point

java - 在 java 中为以下数据编写正则表达式代码

php - 这个PHP函数有什么问题