是否有可能在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中的任何其他地方以某种方式使用正则表达式字符类减法?正则表达式减法
C++ 11支持它吗?
支持此功能的地方?除此之外,我找不到任何参考文献:http://msdn.microsoft.com/en-us/library/20bw873z.aspx(底部)。
更具体:什么是对所有的数字转换,除了2和5星号的最好办法,像
sed -re 's/[0-9-[25]]/*/g'
是否有可能从庆典用在GNU某种方式的sed,awk的GNU,GNU grep的正则表达式字符类减法,或其他地方?
不,不是那些工具/正则表达式实现。
大多数(流行)语言不支持这一点。 Java有办法做到这一点:[0-9&&[^25]]
(匹配任何(ASCII)数字,除了'2'
和'5'
),但我知道没有其他的实现支持这一点。
要么使用负前瞻,作为伊格纳西奥已经建议,或做 “辛苦”:[1346-9]
参见:
谢谢你,你的链接非常有趣。 – gluk47
不客气@ gluk47。 –
做到这一点的方法是负向前看符号,但并非所有的正则表达式引擎支持他们。
>>> re.match(r'(?![25])[0-9]', '2')
>>> re.match(r'(?![25])[0-9]', '3')
<_sre.SRE_Match object at 0x25108b8>
什么是目标语言? C++? C#?每种语言对正则表达式都有不同程度的支持。 – nhahtdh
bash和C++ 11。 «bash»也意味着sed,grep,tr,awk ... – gluk47