【问题标题】:Check if a string matches a regex in Unix [closed]检查字符串是否与Unix中的正则表达式匹配[关闭]
【发布时间】:2020-09-15 14:07:49
【问题描述】:

我有一个脚本,它接受用户输入的字符串。输入是一种发布版本,它具有一定的格式 - 5.80.0-05 我如何验证这一点并确保用户仅以这种格式输入。

如果有人可以提供建议,请告诉我。我不太擅长正则表达式

【问题讨论】:

  • 你有什么尝试吗?
  • @anubhava 我不知道如何开始。只是在看语法,但不确定我是否理解正确。我知道这不是这个网站的工作方式,但我不知道从哪里开始。因此,如果您可以在某处给我一些推送或链接,我可以解决它
  • 对于不那么严格的检查使用:^[0-9.-]+$ as regex
  • 一个问题是,基于没有额外要求的单个示例,很难说出模式是什么。范围可以从“任何由数字、句点和破折号组成的字符串”到“三个由句点、一个破折号和另一个数字分隔的数字”,前三个数字可能不应该以 0 等开头。
  • 首先,要知道[0-9] 匹配单个数字,[.] 匹配单个. 字符。

标签: regex bash shell unix


【解决方案1】:

以下脚本片段可以帮助您。 我不知道您希望检查的 exact 模式,但如果您的模式不同,下面的正则表达式语法应该很容易调整:

#!/bin/bash
version=${1}

[[ "$version" =~ ^[0-9]\.[0-9]{2}\.[0-9]-[0-9]{2}$ ]] || echo Wrong input format: $version 

【讨论】:

    猜你喜欢
    • 2022-11-12
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 2014-02-20
    • 2014-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多