2017-01-17 3 views
1

次は含むものを含む、結果の束を返す " - >発する"ハイフンは正規表現でエスケープする必要がありますか?

grep -rnw '/var/www/react' -e ">emit" 

しかし、次の返さない結果

grep -rnw '/var/www/react' -e "->emit" 

はなぜ?

+0

ハイフンは、*(それは範囲を定義するため)文字クラス*を除いてエスケープする必要はありません。ユニコードテーブルの "asciiハイフン"のように見えるいくつかの文字があることに注意してください。 –

+0

ファイルには何がありますか?上記の質問にファイルのサンプルパターンを追加できますか?多くの中 – codeforester

+0

@codeforesterは、一つは '/var/www/react/vendor/evenement/evenement/tests/Evenement/Tests/EventEmitterTest.php:232です:の$ this - >エミッタ - > EMIT( 'バー');' – user1032531

答えて

1

あなたは-wオプションをドロップする必要があります。それは言葉全体として表現を扱うと言います。 wordは、それが唯一の[a-zA-Z0-9_]以外の文字で囲む必要があり、すなわち、非単語文字で囲まなければなりません。

emitemit_emit、または->emitではなくremitにマッチします。

私はあなたの->emita->emitのようなものにマッチしようとしているが、aword文字であるため、できませんされていることを推測しています。

1

その単語全体が一致し、見つけてください grep Documentation

は、私は単語全体ではなく、単語の一部を検索するとしますか? 「ハロー」-w

のgrep *全体のみ言葉です「こんにちは」のインスタンスの

検索します。 は「Othello」と一致しません。より多くの制御のために、言葉の 開始と終了を一致させると「\>」「< \」を使用。たとえば、次のように

はgrep「こんにちは\>」*

検索が唯一の「ハロー」で終わる単語について、それは言葉 「オセロ」にマッチしそう。

関連する問題