我想编写一个正则表达式,找到所有标点字符(定义为不是字母数字或空格的任何字符),但不计算十进制数字的点数。
所以,例如,给出句子:
是x + 0.89 = y * 13.098?!?
我想要的是
['+','=','*','?','!','?']
有谁知道怎么做?已经有两天我一直在尝试所有可能的方法来否定一个正则表达式,但我无法完成它。我希望你能帮助我。
祝你好运, 最大
答案 0 :(得分:1)
您可以使用以下任一选项。
(?!\b[^\w\s]\b)[^\w\s]
(?!\b[^\w\s]\b)
否定先行确保单词字符(数字中的小数点)之间不存在非(字或空格)字符[^\w\s]
匹配任何非(字或空白)字符\B[^\w\s]|[^\w\s]\B
\B[^\w\s]
符合以下条件
\B
匹配\b
不匹配的位置[^\w\s]
匹配任何非(字或空白)字符[^\w\s]\B
符合以下条件
[^\w\s]
匹配任何非(字或空白)字符\B
匹配\b
不匹配的位置