更新:本文可能对使用RichTextBox的程序员有所帮助。正则表达式对于普通字符串是正确的,但我没有注意到“ä”在richTextBox.Rtf中转换为“\e4r”!因此Match.Value是正确的 - 是人为错误。
正则表达式可以找到正确的文本,但Match.Value是错误的,因为它用“\'e4”替换了德语中的“ä”!
让我们以"Primär-ABC"为例,使用以下代码:
正则表达式可以找到正确的文本,但Match.Value是错误的,因为它用“\'e4”替换了德语中的“ä”!
让我们以"Primär-ABC"为例,使用以下代码:
String example_text = "<em>Primär-ABC</em>";
Regex em = new Regex(@"<em>[^<]*</em>" );
Match emMatch = em.Match(example_text); //Works!
Match emMatch = em.Match(richtextBox.RTF); //Fails!
while (emMatch.Success)
{
string matchValue = emMatch.Value;
Foo(matchValue) ...
}
然后emMatch.Value返回的是“Prim\'e4r-ABC”,而不是“Primär-ABC”。
德语中的ä会转换为\'e4!因为我想使用确切的字符串,所以我需要emMatch.Value成为Primär-ABC - 我该如何实现?
emMatch.Value
的值是\e4
?你打印了吗?2. 能否以同样的方式显示example_text
的值,并确保它不包含\e4
? - ie.