当我在https://regex101.com/上测试时,如果我离开标准选项(/ i) 图案
\bécumé\b
在文字中找不到匹配项:
123 écumé 456
但是,如果我添加unicode标志,将会找到匹配项:
/iu
我怎样才能在C#中做到这一点?以下找到匹配:
string pattern = "/\bécumé\b/iu"
答案 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);
}
}
}