1

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'

4

2 に答える 2

3

それを行う方法はネガティブな先読みを使用することですが、すべての正規表現エンジンがそれらをサポートしているわけではありません。

>>> re.match(r'(?![25])[0-9]', '2')
>>> re.match(r'(?![25])[0-9]', '3')
<_sre.SRE_Match object at 0x25108b8>
于 2012-05-30T07:50:28.343 に答える
3

GNU sed、GNU awk、GNU grep、またはbashの他の場所で、何らかの方法で正規表現文字クラスの減算を使用することは可能ですか?

いいえ、それらのツール/正規表現の実装ではありません。

ほとんどの(人気のある)言語はこれをサポートしていません。Javaにはこれを行う方法があります:(と[0-9&&[^25]]を除く任意の(ASCII)桁に一致します)が、これをサポートする他の実装はありません。'2''5'

Ignacioがすでに示唆しているように、ネガティブな先読みを使用するか(?![25])[0-9]、「難しい方法」で実行します。[1346-9]

見る:

于 2012-05-30T09:04:02.527 に答える