正则表达式匹配表达式包括结束词

时间:2018-10-23 13:56:28

标签: regex

String =“每年不超过10%/适用的”

Regex I'm trying
(?<=shall not exceed)(.*)(?=per annum)

Output Required = 10 per cent. per annum
Output coming = 10 per cent.

但是在上述正则表达式中,它不包含“每年”,如何包含“每年”。我们正在asp.net

中进行此操作

我们使用的Asp.net中的代码...

            string regularExpressionPattern = regExPattern.ToString();
            string inputText = inputString
            Regex re = new Regex(regularExpressionPattern);
            foreach (Match m in re.Matches(inputText))
            {
                Response.Write(m.Groups[1].Value.ToString());
            }

1 个答案:

答案 0 :(得分:1)

使per annum成为使用模式的一部分,因为当它位于正向超前时,匹配的文本不会添加到整个匹配值中。

您可以使用

string inputText = "shall not exceed 10 per cent. per annum/that applicable";
Regex re = new Regex("shall not exceed(.*?per annum)");
foreach (Match m in re.Matches(inputText))
{
    Console.WriteLine(m.Groups[1].Value);
}

请参见C# demo

详细信息

  • shall not exceed-文字字符串
  • (.*?per annum)-捕获组1:
    • .*?-除换行符外的0+个字符,并且尽可能少
    • per annum-文字字符串。

可以通过m.Groups[1].Value访问第1组的值。