行がXXXX形式であるかどうかを確認する方法

行がXXXX形式であるかどうかを確認する方法

私はすでにそれを持っています:

$p =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]$

ただし、これは数値にのみ適用されます。サイズに関係なく単語を含めるにはどうすればよいですか?

たとえば、

this.should.definitely.work  

有効です。

this1.should.definitely.work2 

また利用できます

答え1

あなたの場合の最も正確な正規表現パターンは次のとおりです。

^[^[:space:].]+\.[^[:space:].]+\.[^[:space:].]+\.[^[:space:].]+$

答え2

私はこの解決策を見つけました:

foo="this1.should.definitely.work2"
[[ $foo =~ ^.*\..*\..*\..*$ ]] && echo "match" 

答え3

[[:alnum:]]文字と数字を表すクラスを使用できます。

$p =~ ^[[:alnum:]]+\.[[:alnum:]]+\.[[:alnum:]]+\.[[:alnum:]]+$

関連情報