【发布时间】:2021-11-09 06:28:53
【问题描述】:
我正在尝试删除放置在诸如空格等非法字符上的组合重音符号 (\u0301):
using System;
using System.Text.RegularExpressions;
public class Program
{
public static void Main()
{
string text = "✧ ́зу́б";
string r1 = text.Replace(" \u0301", " ");
string r2 = Regex.Replace(text, " \u0301́", " ", RegexOptions.CultureInvariant);
Console.WriteLine(r1); // ✧ зу́б
Console.WriteLine(r2); // ✧ ́зу́б
Console.WriteLine(r1 == r2); // False
}
}
简单的text.Replace() 按预期工作。为什么正则表达式不起作用?
我在 T-SQL 中有一个 similar issue,它是通过指定二进制排序规则来解决的。我认为RegexOptions.CultureInvariant 可能会成功,但它没有。
【问题讨论】:
-
看起来你在正则表达式中的
\u0301对1有重音 -
@PhuNgo 你是对的。谢谢!