bash - Bash:正则表达式确定字符串是否至少包含@、#、$、%、&、*、+、-、= 之一
问题描述
我需要检查一个字符串是否包含至少一个字符:@、#、$、%、&、*、+、-、= 在我将星号放入正则表达式模式之前一切正常,甚至转义星号。这是我的代码,请帮忙,谢谢!
if [[ ! "$1" =~ .*[@#%$\&+=-\*].* ]]; then
echo "Password must contain at least 1 special character(s)."
exit 1
fi
解决方案
您是否尝试过使用多个转义?有时单个反斜杠不起作用的原因是因为有几个“级别”的解释正在进行。因此,两个、三个或四个逃逸可能在一个不可行的情况下起作用。这是一个额外的反斜杠,如果这不起作用,您可以尝试添加更多。
if [[ ! "$1" =~ .*[@#%$\&+=-\\*].* ]]; then
echo "Password must contain at least 1 special character(s)."
exit 1
fi
推荐阅读
- docker - 运行 tensorboard 以可视化 docker 容器在 Ray Rllib 中运行强化学习
- jekyll - 如何在帖子标题中添加换行符?
- azure-sql-database - SQL Azure 导出数据层应用程序并导入本地 SQL 服务器
- ionic-framework - Ionic 3,HTTP 原生与 HttpClient
- postgresql - 在 PostgreSQL(9.5.15) 程序中无法循环超过 1000 次以插入记录
- ios - 从包含字符串数组的对象元素中过滤结构对象
- javascript - ngModel 未绑定角度 4 中的选择
- google-apps-script - 使用并行单元格中的电子邮件编辑单元格时发送电子邮件
- excel - 创建其平均值等于 M 的随机数
- maven - Maven deploy:file 步骤:自动部署到快照或发布存储库