クローズドネットワーク(つまりインターネットに接続されていない)を使用しています。
ユーザーにgrep -P
。
一般的に、私は何らかの形で入力検証を好みます。
(有効な)正規表現であることを確認するために文字列変数をテストする方法はありますか?
(インターネットから自分のシステムにコンテンツをコピーすることは可能ですが、時間がかかり、PITAなので、ローカルで行う方法を探しています。)
答え1
いいえ。しかし、いくつかのツールでは、正規表現がコンパイルされるかどうかをテストするのは難しくありません。
たとえば、grepを使用すると:echo | grep -P '['
- 終了コードはエラーが発生したことを示します(この例では、grepは$?
"2
grep:文字クラスの終端がありません。]stderr - 終了コードのみが必要な場合は、stderrを/ dev / nullにリダイレクトできます。
終了コード1は、正規表現がうまくコンパイルされたが入力と一致しないことを意味します。
これらの終了コードはGNU grepにのみ適用されます。他のツールには、これらの機能があっても終了コードが異なる場合があり、特定のエラータイプを表示する方法も異なる場合があります。
これは、正規表現が望むものと正確に一致するかどうか(不要なものと一致するかどうか)を伝えるものとは距離が離れていることに注意してください。
つまり、試してみて終了コードをテストしてみてください。そして、あなたのツールを知ってください。