伙计,我如何在sharp-s字符(ß
)与ss
上进行正则表达式匹配,反之亦然?我尝试了不变文化,但没有返回匹配结果。但是,如果我将String.IndexOf()
与不变区域性一起使用,则is可以。
Console.WriteLine("abcßßdefßßghi".IndexOf("ssss", StringComparison.InvariantCultureIgnoreCase) >=0);
var matches = Regex.Matches("abcßßdefßßghi", "ssss", RegexOptions.IgnoreCase | RegexOptions.CultureInvariant);
Console.WriteLine(matches.Count);
// OUTPUT
True
0
我需要找到比赛开始的所有索引。想法是突出显示“匹配”字符串。我正在寻找一种使用Regex.Match()
的干净方法,它比遍历字符串和子字符串等等更好。 TIA。
|
)显式处理两种情况:var matches = Regex.Matches("abcdßẞsSSs", "(ss|ß)", RegexOptions.IgnoreCase);
有点讽刺的是,这适用于所有
neutral和再次,这可能不是您要查找的答案,并且可能会发现与更复杂的正则表达式合并可能有点复杂,但是鉴于明显的局限性,这是我能够做到的最好方法微软的RegEx库。specific文化-即,不仅
de-DE
和de
,甚至ja-JP
和ja
。就是说,令人惊讶的是,它不会在invariant文化中失败,这种文化不会将ß
和ẞ
视为等同。因此,如果您需要在不变文化下运行-或至少需要使用RegexOptions.CultureInvariant
-那么您将需要使用以下代码:var matches = Regex.Matches("abßßcdẞẞefsSsSghij", "(ss|ẞ|ß)", RegexOptions.IgnoreCase | RegexOptions.CultureInvariant);