我想要一些 perl 正则表达式来替换任何非单词字符,如下所示:
s/\W//g;
但是,如果像 ::
这样有两个冒号互相跟随,我不想替换它们。有谁知道如何做到这一点?谢谢!
最佳答案
/\W/
是/[^\w]/
, 所以 /[^\w:]/
将删除除冒号外的所有非单词字符。
您还想删除单独的冒号(/(?<!:):(?!:)/
),所以最终的解决方案是
s/[^\w:]|(?<!:):(?!:)//g;
关于regex - perl 正则表达式替换非单词字符,除了::,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15153223/