2012-01-06 2 views
1

次の行に一致/不一致を返す正規表現を作成できますか?ソースコードの行のコメントなどの境界を検出する正規表現

/*8th*/break; match 

break;/*8th*/ match 

/*8th*/ no match 
/*8th no match 
8th*/ no match 
// /* some_comment no match 
// some_comment no match 
some_comment*/ no match 
some_comment // match 

「はい」の場合は、この正規表現を入力してください。

基本的に私が捕まえようとしているのは、コメントとは別に行に何かがある場合です。

+0

同様の質問:[C#のコメントを文字列から削除](http://stackoverflow.com/questions/8399213/c-sharp-removing-comments-from-a-string) –

+0

これは一致します: '/ * asd/* abcd */qwe ' – Amarghosh

+0

@Amarghoshはい、これは一致と見なされます – smallB

答えて

0

"本当に"これを正規表現で行うことはできません。あなたは80%の症例を得ることができますが、それは複雑な問題です。たとえば、引用符で囲まれた文字列 "* /"がある場合、正規表現はちょうど* /を見て、コメントが終了していると思います。

シンタックスハイライターがどのように機能するかは、多分幸運かもしれません。または、check this burly AWK script out

+0

"物 "が引用符で囲まれていないと一致するようにregexに指示するオプションはありません)? – smallB

+1

問題はコメントのコメントです、あなたはあなたの正規表現を書く限り行くことができます。正規表現で3レベル、コードで4レベル - >問題をキャッチします。正規表現などでコードをキャプチャする場合も同様です。正規表現はソースコードには適していません。期間。 – demorge

+0

@demorgeありがとう、お勧めします+1; – smallB

関連する問題