![如何檢查行是否採用以下格式 XXXX](https://rvso.com/image/164739/%E5%A6%82%E4%BD%95%E6%AA%A2%E6%9F%A5%E8%A1%8C%E6%98%AF%E5%90%A6%E6%8E%A1%E7%94%A8%E4%BB%A5%E4%B8%8B%E6%A0%BC%E5%BC%8F%20XXXX.png)
我已經有了 :
$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:]]+$