こんにちは素晴らしいコミュニティ、
私は正規表現に関しては完全なドープです。私はそれを学ぶことを延期しました。そして今、私の怠lazは私に追いついています。
私がやろうとしていること:
文字列がこの形式に一致するかどうかを確認します。
10_06_13
すなわち。今日の日付、または「2digits_2digits_2digits」の日付
私がやったこと:
regex='([0-9][0-9][_][0-9][0-9][_][0-9][0-9])'
if [[ "$incoming_string" =~ $regex ]]
then
# Do awesome stuff here
fi
これはある程度機能します。ただし、着信文字列が011_100_131
と等しい場合、正規表現チェックに合格します。
誰かが私を正しい方向に向けるのを手伝ってくれたら幸いです。
乾杯
=~
は、左側の文字列含むが右側の正規表現に一致する場合に成功します。文字列matchesが正規表現かどうかを知りたい場合は、次のように、両側で正規表現を「アンカー」する必要があります。
regex='^[0-9][0-9][_][0-9][0-9][_][0-9][0-9]$'
if [[ $incoming_string =~ $regex ]]
then
# Do awesome stuff here
fi
^
は文字列の先頭でのみ成功し、$
は最後にのみ成功します。
ノート:
()
正規表現と""
から [[ ... ]]
。=~
は、文字列が一致すれば成功します。