如何匹配边界\ b与重音

时间:2016-11-24 13:20:35

标签: c# regex

当我在https://regex101.com/上测试时,如果我离开标准选项(/ i) 图案

\bécumé\b

在文字中找不到匹配项:

123 écumé 456

但是,如果我添加unicode标志,将会找到匹配项:

/iu

我怎样才能在C#中做到这一点?以下找到匹配:

string  pattern = "/\bécumé\b/iu"

2 个答案:

答案 0 :(得分:1)

正如@Callum所指出的,Regex101不支持C#。如果你在C#中尝试它,它确实有效:

    [Test]
    public void TestMatch()
    {
        // Arrange.
        const string example = "123 écumé 456";

        Regex pattern = new Regex(@"\bécumé\b");

        // Act.
        Match match = pattern.Match(example);

        // Assert.
        Assert.That(match.Success, Is.True);
    }

还要指出当你说

  

以下找不到匹配项:“/ \bécumé\ b / iu”

字符串中的“/ iu”没有按照您的想法进行操作:在C#中,您可以使用不同的参数提供正则表达式选项,而不是作为模式字符串的一部分。例如:

正则表达式=新的正则表达式(@“\bécumé\ b”,RegexOptions.IgnoreCase);

答案 1 :(得分:-2)

Regex101有一个选项,您可以在其中查看c#代码...试试这个(从网站上获取):

    using System;
using System.Text.RegularExpressions;

public class Example
{
    public static void Main()
    {
        string pattern = @"\bécumé\b";
        string input = @"123 écumé 456";
        RegexOptions options = RegexOptions.IgnoreCase | RegexOptions.CultureInvariant;

        foreach (Match m in Regex.Matches(input, pattern, options))
        {
            Console.WriteLine("'{0}' found at index {1}.", m.Value, m.Index);
        }
    }
}