perl正则表达式替换非单词字符,但::

时间:2013-03-01 08:10:58

标签: regex perl

我想要一些perl正则表达式替换任何非单词字符,如下所示:

s/\W//g;

但是,如果像::那样有两个冒号,我不想替换它们。有谁知道如何做到这一点?谢谢!

1 个答案:

答案 0 :(得分:8)

/\W//[^\w]/,因此/[^\w:]/会删除除冒号之外的所有非字char。

您还想删除单个冒号(/(?<!:):(?!:)/),因此最终的解决方案是

s/[^\w:]|(?<!:):(?!:)//g;