次のregexをgrepコマンドに書いて、javaExceptionを含むディレクトリ内のSQLExceptionのすべてのcatch文を見つけました。Grep正規表現のエラー
catch\s{0,}\(s{0,}SQLException
「グレップ:比類のない(または(」与えている。エラーが発生し、この正規表現はRegExr.com上で正常に動作しているこの正規表現の問題です何
次のregexをgrepコマンドに書いて、javaExceptionを含むディレクトリ内のSQLExceptionのすべてのcatch文を見つけました。Grep正規表現のエラー
catch\s{0,}\(s{0,}SQLException
「グレップ:比類のない(または(」与えている。エラーが発生し、この正規表現はRegExr.com上で正常に動作しているこの正規表現の問題です何
\s
を使用するには、あなたが(Perlの正規表現を許可する)-P
オプションを指定する必要があります:ところで
grep -P 'catch\s{0,}\(\s{0,}SQLException'
を、あなたの代わりに{0,}
の*
を使用することができます。
grep
デフォルトでBRE
を使用し、\(
になります。?キャプチャグループ(エスケープされていない(
を文字通りに解釈される)の開始
あなたは、拡張正規表現モード-E
でこれgrep
を使用することができます。
grep -E 'catch[[:blank:]]*\([[:blank:]]*SQLException' file.log
確かに、スペースは1語のコピー/ペーストのために来ました。今修正しました。 – anubhava
同上、grepを使用するときに-Pを追加することをお勧めします。Perlの正規表現は強力です。 エスケープ文字をASCII 16進コードで置き換えることをお勧めします。例:\ x28 for(、\ x29 for)。それはあまり直感的ではありませんが、それほど問題はありません。 – POW