Hello awesome community,
关于正则表达式,我是一个完整的涂料。我推迟了学习......现在我的懒惰已经赶上了我。
我想做的事情:
检查字符串是否与此格式匹配:
10_06_13
即。今天的日期,或类似日期的" 2digits_2digits_2digits"
我做了什么:
regex='([0-9][0-9][_][0-9][0-9][_][0-9][0-9])'
if [[ "$incoming_string" =~ $regex ]]
then
# Do awesome stuff here
fi
这在一定程度上起作用。但是当传入的字符串等于011_100_131
时......它仍然通过了正则表达式检查。
如果有人能帮助我指出正确的方向,我将不胜感激 干杯
答案 0 :(得分:43)
=~
成功。如果你想知道字符串是否匹配正则表达式,你需要在两边“锚定”正则表达式,如下所示:
regex='^[0-9][0-9][_][0-9][0-9][_][0-9][0-9]$'
if [[ $incoming_string =~ $regex ]]
then
# Do awesome stuff here
fi
^
仅在字符串的开头成功,而$
仅在结尾处成功。
注意:
()
,从""
删除了[[ ... ]]
。=~
会成功。