Как проверить, имеет ли строка следующий формат 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:]]+$

Связанный контент