regex - perl 正则表达式替换非单词字符,除了::

标签 regex perl

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

s/\W//g;

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

最佳答案

/\W//[^\w]/ , 所以 /[^\w:]/将删除除冒号外的所有非单词字符。

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

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

关于regex - perl 正则表达式替换非单词字符,除了::,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15153223/

相关文章:

mysql - 在单个 MySQL 查询中更新多个列是否有限制?

php - 无法从 .htaccess 生成的 url 获取变量

c# - 从给定字符串中查找电话号码 C#

perl - 使用 Devel::Declare 创建新的 Perl 关键字

Perl 脚本引发 awk 命令的语法错误

perl - 使用 perl 在 XML 到 JSON 转换中获取额外变量

javascript - 寻找一个正则表达式来替换我的字符串

正则表达式替换 "and "之间的 href 值,用于 <a> 而不是 <link> 标签

html - 将 css 应用于具有相同模式的元素

windows - Windows 的 perl 系统函数中的多个参数