[英]Regular Expression in Bash Script
您好,社区,
当谈到正则表达式时,我是一个完整的涂料。 我推迟了学习......现在我的懒惰已经赶上了我。
我正在尝试做什么:
检查字符串是否与此格式匹配:
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
......它仍然通过了正则表达式检查。
如果有人能帮我指出正确的方向,我将不胜感激。
干杯
=~
如果左边的字符串包含右边正则表达式的匹配则成功。 如果你想知道字符串是否与正则表达式匹配 ,你需要在两边“锚定”正则表达式,如下所示:
regex='^[0-9][0-9][_][0-9][0-9][_][0-9][0-9]$'
if [[ $incoming_string =~ $regex ]]
then
# Do awesome stuff here
fi
^
仅在字符串的开头处成功,而$
仅在结束时成功。
笔记:
()
,从[[ ... ]]
删除了""
。 =~
成功。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.