valid
名称为时,为什么打印以下正则表达式hdpworker01
?
name=hdpworker01
[[ $name =~ worker[[:digit:]] ]] && echo valid
我想做的是valid
仅在名称匹配时才打印worker[0-999]
。
预期结果示例:
name=worker01
:valid
name=hdpworker01
:无输出默认情况下,正则表达式不会锚定在字符串的开头或结尾。这与例如文件名遍历模式不同。这意味着表达式可以匹配给定字符串中的任何位置。
要将表达式锚定到字符串的开头,请使用
^worker[[:digit:]]
要将其附加锚定到字符串的末尾并允许使用一到三位数字,请使用
^worker[[:digit:]]{1,3}$
如果您要匹配worker10
但不匹配(worker01
或worker003
不包含零填充数字),请使用
^worker([0-9]|[1-9][0-9]{1,2})$
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句