行が次の形式であるかどうかを確認する方法 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:]]+$

関連情報