私はSGFファイルの束内のすべてのコメントを削除しようとしているし、次のperlコマンドが出ている:Perlは正規表現と一致しませんか?
perl -pi -e 's/P?C\[(?:[^\]\\]++|\\.)*+\]//gm' *.sgf
私は続いCやPCにマッチし、削除しようとしています左括弧、右括弧でない文字(\
でエスケープする必要がある場合)、右括弧を入力します。
私は次の例と一致するようにしようとしている:
C[HelloBot9 [-\]: GTP Engine for HelloBot9 (white): HelloBot version 0.6.26.08]
PC[IA [-\]: GTP Engine for IA (black): GNU Go version 3.7.11
]
C[person [-\]: \\\]]
C[AyaMC [3k\]: GTP Engine for AyaMC (black): Aya version 6.61 : If you pass, AyaMC
will pass. When AyaMC does not, please remove all dead stones.]
と一致させるべきではない、いくつかの例を:
XYZ[Other stuff \]]
C[stuff\]
PC[stuff\\\]
正規表現は(状態が、彼らはperlの正規表現テスターであることをいくつか含む)いくつかのオンライン正規表現テスターで動作しますが、何らかの理由でコマンドライン上では動作しません。ヘルプは高く評価されます。
私が見たオンライン正規表現テスターは、Perl正規表現ではなくPCREを使用しているため、結果はn個ではありませんecessarily同じです。また、 '^'や '$'アンカーを使わないので、 '/ m'修飾子は無用です。 [perlre](http://perldoc.perl.org/perlre.html#*m*)を参照してください。 – ThisSuitIsBlackNot
@ThisSuitIsBlackいいえ、それは意味があります。私はまだこの作業をどうするか考えていない。 – eukaryote
例の最初のセットでコードを実行すると、そのコードは機能します。 [mcve]を作成できますか? – ThisSuitIsBlackNot