2012-02-19 3 views
1

私はいくつかの否定的な先読みおよび見た目のパターンを無駄にして取り組んできました。上記の文字が引用符で囲まれていない限り、2つのスラッシュの前に文字列のすべてにマッチする正規表現が必要です。二重引用符で囲まれていない2つのスラッシュ(//)の前にすべて一致する正規表現

たとえば、文字列"//this is a string//" //A comment about a string about stringsでは、 部分文字列"//this is a string//"は一致する必要があり、残りは無視されます。 ご覧のとおり、1行コメント(C++/Javaスタイル)を除外することがポイントです。 ありがとうございました。それは"または'のいずれかが続いていない場合

答えて

1

どの程度

\/\/[^\"']*$ 

それは//と一致します。それはあなたが要求したものではありませんが、あなたの要件を厳密に満たしています。それが唯一の無ソリューションより

// I like "bread". 

たぶん、より良いように、"または'が含まれているコメントに窒息します。それは便利だ場合、私は、しばらく前に書いた

+0

私はこれだけで罰金、おかげで動作するはずだと思います! –

0

パイソン/正規表現ベースのコメントリムーバー:ここ

def remcomment(line): 
    for match in re.finditer('"[^"]*"|(//)', line): 
    if match.group(1): 
     return line[:match.start()].rstrip() 
    return line 
2

あなたが行く:

^([^/"]|".+?"|/[^/"])* 
関連する問題