1. ホーム
  2. regex

[解決済み] シェルスクリプトで正規表現を使用するにはどうすればよいですか?

2022-03-07 01:11:04

質問

シェルスクリプトで、ある文字列を正規表現でマッチングさせようとしています。 この文字列はスクリプトのパラメータ($1)であり、日付(MM/DD/YYYY)である。 私が使おうとしている正規表現は、:

^\d{2}[\/\-]\d{2}[\/\-]\d{4}$

いくつかの正規表現テストサイトで試したところ、うまくいったようです。

私のシェルコードは:

REGEX_DATE="^\d{2}[\/\-]\d{2}[\/\-]\d{4}$"
 
echo "$1" | grep -q $REGEX_DATE
echo $?

echo $?" は、パラメータにどんな文字列を入れても1を返します。

皆さんはどう思われますか?

ありがとうございます。

解決方法は?

こんな感じでしょうか。

REGEX_DATE='^\d{2}[/-]\d{2}[/-]\d{4}$'

echo "$1" | grep -P -q $REGEX_DATE
echo $?

perl regexを取得するために-Pスイッチを使用しています。