标签: regex perl
我想要一些perl正则表达式替换任何非单词字符,如下所示:
s/\W//g;
但是,如果像::那样有两个冒号,我不想替换它们。有谁知道如何做到这一点?谢谢!
::
答案 0 :(得分:8)
/\W/为/[^\w]/,因此/[^\w:]/会删除除冒号之外的所有非字char。
/\W/
/[^\w]/
/[^\w:]/
您还想删除单个冒号(/(?<!:):(?!:)/),因此最终的解决方案是
/(?<!:):(?!:)/
s/[^\w:]|(?<!:):(?!:)//g;