有人能帮我执行SH shell (而不是bash)的URL验证吗?
试了下一个..。而且看上去不太正常。
regex='(https?|ftp|file)://[-A-Za-z0-9\+&@#/%?=~_|!:,.;]*[-A-Za-z0-9\+&@#/%=~_|]'
string=$1
if echo "$1"|grep -q '$regex';then
echo "Link valid"
else
echo "Link not valid"
fi发布于 2015-07-06 08:13:08
我不认为正则表达式足够复杂,不足以处理所有类型的有效URL,但忽略了这一点,您可以通过更改以下几点来使其工作:
if echo "$1" | grep -Eq "$regex"; then
^ ^我使用-E开关启用了扩展的regex支持,并在变量周围使用双引号,以便展开它。
发布于 2015-07-06 08:14:19
将grep更改为:
grep -qP "$regex"使用Perl并启用变量展开(双引号)。
https://stackoverflow.com/questions/31240704
复制相似问题