c++ - 正则表达式减法

标签 c++ regex bash c++11 regex-negation

是否可以在 GNU sed、GNU awk、GNU grep 或 bash 的其他任何地方以某种方式使用正则表达式字符类减法?

C++11 支持吗?

哪里支持此功能?除了这个以外,我找不到任何引用资料:http://msdn.microsoft.com/en-us/library/20bw873z.aspx (在底部)。

更具体地说:将除 2 和 5 以外的所有数字转换为星号的最佳方法是什么,例如

sed -re 's/[0-9-[25]]/*/g'

最佳答案

Is it possible to use regex character class subtraction in some way in GNU sed, GNU awk, GNU grep, or anywhere else from bash?

不,不是那些工具/正则表达式实现。

大多数(流行的)语言不支持这个。 Java 有一种方法可以做到这一点:[0-9&&[^25]](匹配除 '2''5'< 之外的任何 (ASCII) 数字),但我知道没有其他实现支持这一点。

要么像 Ignacio 已经建议的那样,使用否定的前瞻性 (?![25])[0-9],要么使用“艰难的方式”:[1346-9 ]

参见:

关于c++ - 正则表达式减法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10812016/

相关文章:

linux - Jenkins shell 字符串引用替换

linux - 在不同目录中查找具有相同名称的文件并计算重复项

bash - 用\n+numbers+\n替换所有数字

c++ - 为什么 std::vector 的相同成员的地址在 std::sort 的比较函数中不同?

c# - 访问 COM 对象

javascript - 否定后视不匹配转义字符,在转义反斜杠上失败

regex - 在PowerShell中匹配字符串

c++ - 将参数传递给函数

c++ - 在 Qt 中编写 SQlite 数据库

java - 根据除逗号之外的特殊字符验证字符串