用于提取标点/字符的正则表达式

时间:2012-11-21 12:15:00

标签: c# regex

大家好我需要一个只提取标点/字符的正则表达式。

到目前为止,我有这个:

[._^%$#!~@,-]+

但如果至少有1个标点符号并且仍允许任何其他字符(数字或字母),则此方法有效

我只需要允许标点/字符

4 个答案:

答案 0 :(得分:4)

试试这个:

^[\p{S}\p{P}]+$

\p{S}匹配任何符号字符,\p{P}匹配任何标点符号。

请注意,您的模式不会匹配列表中不存在的所有符号和标点符号。

答案 1 :(得分:3)

尝试将正则表达式锚定到字符串的开头和结尾(除非您使用的是多行匹配) - 即开头为^,结尾为$

^[._^%$#!~@,-]+$

注意 - 这并不支持你的实际模式(我不能说这是否与你正在讨论的所有'特殊字符'相匹配,但它会使整个字符串必须全部'特殊'

答案 2 :(得分:0)

[^ a-zA-Z0-9] *你可以尝试这样的事情。不应该接受那些字符,cba写在你打字旁边的所有字符旁边。

答案 3 :(得分:0)

\W

匹配任何不是单词字符的字符(字母数字和下划线)。