正则表达式-脚本检查允许的字符

编码的

我需要检查一个字符串,并确保它不包含给定字符列表之外的任何字符。

我编写了一个脚本对此进行了测试:

str="$1"

regex="^[0-9a-zA-Z\,\!\-\^\`@\{\}\[\],=\(\).;\/~_|]*$"

if [[ "$str" =~ $regex ]]
then
  echo "f yeah"
else
  echo "f you"
fi

但这似乎行不通。在我看来,我甚至还没有接近。

允许的字符列表为:

a-z A-Z 0-9 ` @ { } [ ] ^ , = ! ( ) . ; / ~ _ |

不知道我在这里想念的是什么。

疾病

您不能通过]反斜杠将a包含在字符类中。它必须是该类中的第一个元素。破折号也一样,但这次必须走到最后。\-\^恰好匹配从\的范围\,即反斜线和插入符号。(我也删除了无用的反斜杠)。

regex='^[]0-9a-zA-Z,!^`@{}=().;/~_|[-]*$'

你确定你想*,不是+您真的要接受空字符串吗?

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章