Https://regex101.com/ kullanarak bir dizede bir IP adresinin ilk oluşumunu döndürmek için düzenli bir ifade oluşturdum.
RegExp:
(?:\d{1,3}\.)+(?:\d{1,3})
Sınırlayıcılar dahil RegExp:
/(?:\d{1,3}\.)+(?:\d{1,3})/
Aşağıdaki test dizesiyle:
eu-west 140.243.64.99
Şunun tam eşleşmesini döndürür:
140.243.64.99
Ben çapa vb ne denemek olursa olsun, aşağıdaki bash betiği oluşturulan normal ifade ile çalışmaz.
temp="eu-west 140.243.64.99 "
regexp="(?:\d{1,3}\.)+(?:\d{1,3})"
if [[ $temp =~ $regexp ]]; then
echo "found a match"
else
echo "No IP address returned"
fi
=~
Operatör tartışılmıştır manuel burada o bash kullanır "genişletilmiş düzenli ifadeler" yazılı nerede. Genişletilmiş normal ifadeler kılavuz regex(7)
sayfasında açıklanmıştır ve burada kısaca özetlenmiştir .