检查字符串是否与Bash脚本中的正则表达式匹配

彼得·尼耶姆

我的脚本收到的参数之一是以下格式的日期:yyyymmdd

我想检查输入的日期是否有效。

我怎样才能做到这一点?我正在尝试使用如下正则表达式:[0-9]\{\8}

fedorqui'停止伤害'

您可以使用测试构造[[ ]]以及正则表达式匹配运算符=~来检查字符串是否与正则表达式模式匹配。

对于您的特定情况,您可以编写:

[[ $date =~ ^[0-9]{8}$ ]] && echo "yes"

或更准确的测试:

[[ $date =~ ^[0-9]{4}(0[1-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[0-1])$ ]] && echo "yes"
#           |^^^^^^^^ ^^^^^^ ^^^^^^  ^^^^^^ ^^^^^^^^^^ ^^^^^^ |
#           |   |     ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^ |
#           |   |          |                   |              |
#           |   |           \                  |              |
#           | --year--   --month--           --day--          |
#           |          either 01...09      either 01..09     end of line
# start of line            or 10,11,12         or 10..29
#                                              or 30, 31

也就是说,您可以在Bash中定义与所需格式匹配的正则表达式这样,您可以执行以下操作:

[[ $date =~ ^regex$ ]] && echo "matched" || echo "did not match"

其中命令之后&&被执行,如果测试是成功的,和命令之后||,如果测试不成功被执行。

请注意,这是基于Aleks-Daniel Jakimenko在bash中的用户输入日期格式验证中的解决方案


在其他Shell中,可以使用grep如果您的外壳符合POSIX,请执行

(echo "$date" | grep -Eq  ^regex$) && echo "matched" || echo "did not match"

不符合POSIX的fish中,您可以执行

echo "$date" | grep -Eq "^regex\$"; and echo "matched"; or echo "did not match"

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

布尔检查字符串是否与ruby中的正则表达式匹配?

来自分类Dev

检查字符串是否与python中的正则表达式完全匹配

来自分类Dev

检查字符串是否可能与正则表达式匹配

来自分类Dev

如何检查字符串是否与正则表达式匹配

来自分类Dev

检查字符串是否匹配特定的正则表达式

来自分类Dev

使用正则表达式检查字符串的开头是否与模式匹配

来自分类Dev

检查字符串是否在ruby中以正则表达式开头以匹配“ [NATURAL NUMBER]”

来自分类Dev

如何检查字符串是否与node.js中的任何正则表达式数组匹配?

来自分类Dev

如何使用正则表达式检查字符串是否匹配Oracle中的多个条件?

来自分类Dev

检查字符串是否在ruby中以正则表达式开头以匹配“ [NATURAL NUMBER]”

来自分类Dev

C中的正则表达式,检查字符串是否包含特定字符

来自分类Dev

JavaScript检查字符串是否包含正则表达式中的任何单词

来自分类Dev

检查字符串的正则表达式以

来自分类Dev

正则表达式检查字符串是否包含指定字符以外的字符

来自分类Dev

正则表达式检查字符串是否包含非指定字符

来自分类Dev

正则表达式-如何检查字符串是否以给定字符开始或结束?

来自分类Dev

正则表达式检查字符串是否仅由特殊字符组成

来自分类Dev

使用流星匹配和正则表达式检查字符串

来自分类Dev

正则表达式来检查字符串中是否有任何特殊字符,例如(!,@ <#,$,%<^ <等)

来自分类Dev

用于检查字符串中是否存在一个或多个特殊字符的正则表达式

来自分类Dev

正则表达式检查字符串是否包含非数字失败

来自分类Dev

用于检查字符串是否为整数的正则表达式

来自分类Dev

使用正则表达式检查字符串是否以数字开头

来自分类Dev

正则表达式检查字符串是否只有空格

来自分类Dev

正则表达式,应检查字符串是否包含指定的单词

来自分类Dev

用于检查字符串是否仅包含零的正则表达式

来自分类Dev

检查字符串是否包含带有正则表达式的独立“ c ++”

来自分类Dev

检查字符串是否为正则表达式的其他方法

来自分类Dev

正则表达式来检查字符串是否符合特定条件

Related 相关文章

  1. 1

    布尔检查字符串是否与ruby中的正则表达式匹配?

  2. 2

    检查字符串是否与python中的正则表达式完全匹配

  3. 3

    检查字符串是否可能与正则表达式匹配

  4. 4

    如何检查字符串是否与正则表达式匹配

  5. 5

    检查字符串是否匹配特定的正则表达式

  6. 6

    使用正则表达式检查字符串的开头是否与模式匹配

  7. 7

    检查字符串是否在ruby中以正则表达式开头以匹配“ [NATURAL NUMBER]”

  8. 8

    如何检查字符串是否与node.js中的任何正则表达式数组匹配?

  9. 9

    如何使用正则表达式检查字符串是否匹配Oracle中的多个条件?

  10. 10

    检查字符串是否在ruby中以正则表达式开头以匹配“ [NATURAL NUMBER]”

  11. 11

    C中的正则表达式,检查字符串是否包含特定字符

  12. 12

    JavaScript检查字符串是否包含正则表达式中的任何单词

  13. 13

    检查字符串的正则表达式以

  14. 14

    正则表达式检查字符串是否包含指定字符以外的字符

  15. 15

    正则表达式检查字符串是否包含非指定字符

  16. 16

    正则表达式-如何检查字符串是否以给定字符开始或结束?

  17. 17

    正则表达式检查字符串是否仅由特殊字符组成

  18. 18

    使用流星匹配和正则表达式检查字符串

  19. 19

    正则表达式来检查字符串中是否有任何特殊字符,例如(!,@ <#,$,%<^ <等)

  20. 20

    用于检查字符串中是否存在一个或多个特殊字符的正则表达式

  21. 21

    正则表达式检查字符串是否包含非数字失败

  22. 22

    用于检查字符串是否为整数的正则表达式

  23. 23

    使用正则表达式检查字符串是否以数字开头

  24. 24

    正则表达式检查字符串是否只有空格

  25. 25

    正则表达式,应检查字符串是否包含指定的单词

  26. 26

    用于检查字符串是否仅包含零的正则表达式

  27. 27

    检查字符串是否包含带有正则表达式的独立“ c ++”

  28. 28

    检查字符串是否为正则表达式的其他方法

  29. 29

    正则表达式来检查字符串是否符合特定条件

热门标签

归档