"sh" - URL 验证
"sh" - URL validation
谁能帮我对 SH shell(不是 bash)执行 URL 验证?
尝试了以下一个..但似乎工作不正常。
regex='(https?|ftp|file)://[-A-Za-z0-9\+&@#/%?=~_|!:,.;]*[-A-Za-z0-9\+&@#/%=~_|]'
string=
if echo ""|grep -q '$regex';then
echo "Link valid"
else
echo "Link not valid"
fi
我认为您的正则表达式不够复杂,无法处理所有类型的有效 URL 但忽略这一点,您可以通过更改几项内容使其工作:
if echo "" | grep -Eq "$regex"; then
^ ^
我已经使用 -E
开关启用了扩展的正则表达式支持,并在您的变量周围使用了双引号以便扩展它。
将您的 grep
更改为:
grep -qP "$regex"
使用 Perl 正则表达式并启用变量扩展(双引号)。
谁能帮我对 SH shell(不是 bash)执行 URL 验证?
尝试了以下一个..但似乎工作不正常。
regex='(https?|ftp|file)://[-A-Za-z0-9\+&@#/%?=~_|!:,.;]*[-A-Za-z0-9\+&@#/%=~_|]'
string=
if echo ""|grep -q '$regex';then
echo "Link valid"
else
echo "Link not valid"
fi
我认为您的正则表达式不够复杂,无法处理所有类型的有效 URL 但忽略这一点,您可以通过更改几项内容使其工作:
if echo "" | grep -Eq "$regex"; then
^ ^
我已经使用 -E
开关启用了扩展的正则表达式支持,并在您的变量周围使用了双引号以便扩展它。
将您的 grep
更改为:
grep -qP "$regex"
使用 Perl 正则表达式并启用变量扩展(双引号)。