我必须处理一个可能包含各种非标准字符的字符串,并且我被要求提供一个正则表达式,它将匹配并删除除标点符号和空格之外的所有非字母数字字符。
有没有办法做到这一点?
来自正则表达式.info:
\p{P}
或\p{Punctuation}
:任何类型的标点符号。
\p{L}
或\p{Letter}
:任何语言的任何类型的字母。
\p{Nd}
或\p{Decimal_Digit_Number}
:除表意文字外的任何文字中的数字 0 到 9。
你的正则表达式看起来像这样
[^\p{L}\p{Nd}\p{P} ]+
这将匹配非字母、非数字、非标点和非空格的任何内容。
使用这种模式:@"[^\s\w]| "
^
方括号中的符号表示否定。所以这将匹配除单词字符(数字、字母和下划线)和空格([^\s\w]
)或空格之外的所有内容。
使用以下正则表达式。
[^a-zA-Z0-9!.,'" ]
将任何其他允许的标点符号添加到表达式中。最后一个空格是一个space
字符。
\w
如果允许下划线,则使用。\s
将允许空白字符。