是否有可能在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