终端正则表达式语法[复制]

问题描述 投票:0回答:1

我正在尝试测试用户的字符串,看它是正整数还是小数。我目前有:

if ! [[ "$varSize" =~ ^[0-9]+(?:$|\.[0-9]+) ]] then echo "SIZE CAN ONLY CONTAIN NUMBERS" fi

但我得到行错误,所以认为我的正则表达式格式有问题。正则表达式在regexr上工作正常,所以猜它是一个bash的东西?

在此先感谢您的帮助

regex bash macos
1个回答
1
投票

这是正确的解决方案:

#!/bin/bash

varSize="12.a3"
echo $varSize
re='^[0-9]+([.][0-9]+)?$'

if [[ "${varSize}" =~ $re ]]
   then
       echo "SIZE CONTAINS NUMBERS only"
   else
       echo "SIZE is not a number"
fi

你可以玩这个小脚本来进一步调整它以满足你的需求。

© www.soinside.com 2019 - 2024. All rights reserved.