C++ 正则表达式减法
在GNU-sed、GNU-awk、GNU-grep或bash以外的任何地方,是否可以以某种方式使用正则表达式字符类减法 它在C++11中受支持吗 在哪里支持此功能?除了下面这个,我找不到任何参考资料 更具体地说:将除2和5之外的所有数字转换为星号的最佳方法是什么C++ 正则表达式减法,c++,regex,bash,c++11,regex-negation,C++,Regex,Bash,C++11,Regex Negation,在GNU-sed、GNU-awk、GNU-grep或bash以外的任何地方,是否可以以某种方式使用正则表达式字符类减法 它在C++11中受支持吗 在哪里支持此功能?除了下面这个,我找不到任何参考资料 更具体地说:将除2和5之外的所有数字转换为星号的最佳方法是什么 sed-re的/[0-9-[25]]/*/g'方法是使用负外观头,但并非所有正则表达式引擎都支持它们 >>> re.match(r'(?![25])[0-9]', '2') >>> re.match(
sed-re的/[0-9-[25]]/*/g'
方法是使用负外观头,但并非所有正则表达式引擎都支持它们
>>> re.match(r'(?![25])[0-9]', '2')
>>> re.match(r'(?![25])[0-9]', '3')
<_sre.SRE_Match object at 0x25108b8>
重新匹配(r'(?![25])[0-9],'2')
>>>关于匹配(r'(?![25])[0-9],'3')
方法是使用负外观头,但并非所有正则表达式引擎都支持它们
>>> re.match(r'(?![25])[0-9]', '2')
>>> re.match(r'(?![25])[0-9]', '3')
<_sre.SRE_Match object at 0x25108b8>
重新匹配(r'(?![25])[0-9],'2')
>>>关于匹配(r'(?![25])[0-9],'3')
在GNU-sed、GNU-awk、GNU-grep或bash以外的任何地方,是否可以以某种方式使用正则表达式字符类减法
不,不是那些工具/regex实现
大多数(流行)语言不支持此功能。Java有一种方法可以做到这一点:[0-9&&[^25]]
(匹配除'2'
和'5'
之外的任何(ASCII)数字),但我知道没有其他实现支持这一点
正如Ignacio已经建议的那样,使用消极前瞻(?![25])[0-9]
,或者“以艰难的方式”:[1346-9]
见:
[0-9&&[^25]]
(匹配除'2'
和'5'
之外的任何(ASCII)数字),但我知道没有其他实现支持这一点
正如Ignacio已经建议的那样,使用消极前瞻(?![25])[0-9]
,或者“以艰难的方式”:[1346-9]
见: