gpt4 book ai didi

regex - Bash 脚本中的正则表达式

转载 作者:IT老高 更新时间:2023-10-28 12:41:17 25 4
gpt4 key购买 nike

你好很棒的社区,

说到正则表达式,我完全是个笨蛋。我已经推迟了学习它......现在我的懒惰已经 catch 了我。

我正在尝试做的事情:
检查字符串是否匹配此格式:

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

^只在字符串开头成功,$只在结尾成功。

注意事项:

  1. 我从正则表达式中删除了不必要的 () 并从 [[ ... ]] 中删除了 ""
  2. bash 手册措辞不佳,因为它说 =~ 如果字符串匹配则成功。

关于regex - Bash 脚本中的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17028143/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com