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