正则表达式减法
regex subtraction
本文关键字:正则表达式 更新时间:2023-10-16
是否可以在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'
是否可以在 GNU sed、GNU awk、GNU grep 或 bash 的其他任何地方以某种方式使用正则表达式字符类减法?
不,不是那些工具/正则表达式实现。
大多数(流行)语言不支持此功能。Java有一种方法可以做到这一点:[0-9&&[^25]]
(匹配除'2'
和'5'
之外的任何(ASCII)数字),但我知道没有其他实现支持这一点。
要么使用消极的前瞻性(?![25])[0-9]
,正如伊格纳西奥已经建议的那样,要么以"艰难的方式"去做:[1346-9]
看:
- http://www.regular-expressions.info/refflavors.html
- http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html
做到这一点
的方法是使用负面的前瞻,但并非所有正则表达式引擎都支持它们。
>>> re.match(r'(?![25])[0-9]', '2')
>>> re.match(r'(?![25])[0-9]', '3')
<_sre.SRE_Match object at 0x25108b8>
相关文章:
- 使用正则表达式regex_search在字符串中查找字符串
- 在 C++ 中使用正则表达式错误时出现问题 括号表达式中的范围无效
- C++正则表达式无限循环
- FindPackageHandleStandardArgs.cmake:137 的 CMake 错误(消息):找不到 Boost (缺少:正则表达式)(找到合适的版本"1.72.0",
- 定义有趣的宏和正则表达式在Z3 C++绑定
- 带有多个字符分隔符的正则表达式
- C++ 使用增强正则表达式库时断言崩溃
- 有人可以帮助我处理正则表达式吗?
- 使用正则表达式获取大括号块的列表
- 正则表达式以匹配数字的重复模式,后跟任何类型的分隔符?
- 组合正则表达式部分使用 | 不起作用的 C++
- 为什么C++正则表达式这么慢?
- 如何使HTML5电子邮件验证正则表达式在C++中工作?
- 在C++中实现正则表达式
- C++正则表达式替换整个单词
- 用C++编写正则表达式的正确方法是什么?
- 如何从Stroustrup的C++书中解释这个正则表达式?
- 为什么这个正则表达式C++在括号表达式中抛出无效范围异常?
- C++:匹配正则表达式,什么是匹配?
- C++:正则表达式匹配代码,打印多个匹配项?