-1

我必须处理一个可能包含各种非标准字符的字符串,并且我被要求提供一个正则表达式,它将匹配并删除除标点符号和空格之外的所有非字母数字字符。

有没有办法做到这一点?

4

3 回答 3

2

来自正则表达式.info

\p{P}\p{Punctuation}:任何类型的标点符号。

\p{L}\p{Letter}:任何语言的任何类型的字母。

\p{Nd}\p{Decimal_Digit_Number}:除表意文字外的任何文字中的数字 0 到 9。

你的正则表达式看起来像这样

[^\p{L}\p{Nd}\p{P} ]+

这将匹配非字母、非数字、非标点和非空格的任何内容。

于 2012-04-27T07:58:33.883 回答
0

使用这种模式:@"[^\s\w]| "
^方括号中的符号表示否定。所以这将匹配除单词字符(数字、字母和下划线)和空格([^\s\w])或空格之外的所有内容。

于 2012-04-27T07:42:58.350 回答
0

使用以下正则表达式。

[^a-zA-Z0-9!.,'" ]

将任何其他允许的标点符号添加到表达式中。最后一个空格是一个space字符。

\w如果允许下划线,则使用。\s将允许空白字符。

于 2012-04-27T07:45:05.590 回答