So prüfen Sie, ob die Zeile das folgende Format hat: XXXX

So prüfen Sie, ob die Zeile das folgende Format hat: XXXX

Ich habe schon :

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

aber das funktioniert nur für Zahlen. Wie kann ich es so machen, dass es Wörter einschließt und unabhängig von der Größe ist.

Zum Beispiel:

this.should.definitely.work  

wäre gültig und

this1.should.definitely.work2 

wäre auch gültig

Antwort1

Das genaueste Regex-Muster für Ihren Fall wäre:

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

Antwort2

Ich bin zu dieser Lösung gekommen:

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

Antwort3

Du könntest die Klasse verwenden [[:alnum:]], die für Buchstaben und Ziffern steht:

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

verwandte Informationen