2012-01-05 24 views
3

/*で始まる文字列以外のすべての文字列に一致する正規表現は、スラッシュ(U+002F)に続いてスター(U+002A)を意味しますか?"/ *"で始まらない文字列の正規表現

私は^.*[^/\*]を試しましたが、私にとってはうまくいかないようです。

+1

を使用することができますリースの2つの文字とラインを一致させる必要がある場合は、それらはどこからでも開始し、複数の行にまたがる可能性があるからです。 – hochl

答えて

7

あなたは否定先読みを使用することができます。

^(?!/\*).* 

これは、/*で始まる場合を除いて、すべてを一致します。

それとも、/または*以外のものを意味している場合:

^[^/*].* 
+0

ありがとうございます。これを//(一行コメント)とORする方法を教えてもらえますか?どの手段が/ *または//で始まらないか – smallB

+0

@smallB先読みすることができます: '^(?!/ \ * | //).*'。 – Howard

+0

すばらしい、ありがとう!それは素晴らしいです – smallB

0

EDIT:これは/*以外の文字で始まる文字列を一致させるためである - 質問を読み違え茎から。これを無視してください。文字列
[^/*]初めに.*は何も、すべてをマッチングしていることを/*
.*以上の文字(

+0

これは正しくありません。 */ – tripleee

+0

@tripleeの後の2番目の文字ではなく、最初の文字として許されています。合意したように、 '/'と '*'以外の文字で始まる文字列として質問を誤読しました。編集に – Amarghosh

0

以外の文字の

^[^/*].* 

^先頭です。あなたは自分のnotブロックを移動する必要があります初めまで:

^[^/*].* 
-1

^[^/*]はあなたが必要とするすべてのようになります。

$ echo -e "*red\n/green\nblue" 
*red 
/green 
blue 
$ echo -e "*red\n/green\nblue" | egrep "^[^/*]" 
blue 

あなたは間違いなく、私はあなたが何かからのコメントをフィルタリングしようとしていない願っていますあなたは^[^/*].+

関連する問題