3

我正在使用下面的正则表达式从字符串中删除所有非 ascii 字符。

String pattern = @"[^\u0000-\u007F]";
Regex rx = new Regex(pattern, RegexOptions.Compiled);
rx.Replace(data," ");

但是,我想允许使用货币(英镑符号)和商标符号。

我已经修改了上面的正则表达式,如下所示,它对我有用。谁能确认正则表达式是否有效?

 String pattern = @"[^\u0000-\u007F \p{Sc}]";

基本上,我也想允许所有货币符号。

4

1 回答 1

2

是的,您的正则表达式是正确的。

您对代码所做的是将正则表达式匹配的字符替换为空字符。

现在,您的正则表达式匹配哪些字符?

除了:

如果您只想继续允许其他一些字符,是的,您也可以添加它们(就像您使用\p{Sc}.

编辑:

以后做的时候要小心。正则表达式实际上是[^\u0000-\u007F\p{Sc}](没有空格),尽管在这种情况下它并不重要,因为空格字符已经在 ASCII 范围内。

于 2013-02-19T09:29:27.130 回答