0

この正規表現は、すべての php コメントを削除するために使用されます。正規表現を確認していただけますか?

content = ""
    with open(file_path, 'r') as content_file:
        content = content_file.read()

re.sub(r"""(?|(?:#|//)([^\r\n]*)|/\*([\s\S]*?)\*/)""", "", content)

私の正規表現の何が問題になっていますか? ありがとう。

4

1 に答える 1

0

その部分には確かに何か問題があり (?|(?:#|//)
ます 疑問符は最初の括弧の量指定子として機能し(
ます 次に、正規表現パターンは次のようになります

('(?'
 '|'
 '(?:#|//)([^\r\n]*)'
 '|'
 '/\*([\s\S]*?)\*/)'
 )

そして、テストするre.compile('(?|a')と、関連するエラーと同じエラーが発生します。unexpected end of pattern

ところで、構成された[\s\S]任意の文字を表します。これをフラグに付随\nするドットに置き換えることができます.re.DOTALL

于 2013-05-28T14:36:07.587 に答える