正则表达式 – Bash需要测试字母数字字符串
发布时间:2020-12-14 06:07:32 所属栏目:百科 来源:网络整理
导读:尝试验证字符串中只包含小写,大写或数字. if ! [[ "$TITLE" =~ ^[a-zA-Z0-9]+$]]; then echo "INVALID"; fi 思考? *更新* 变量TITLE目前只有大写文本,所以它应该通过,不应输出任何内容.但是,如果我向TITLE添加一个特殊字符,IF语句应该捕获它并回显INVALID.
尝试验证字符串中只包含小写,大写或数字.
if ! [[ "$TITLE" =~ ^[a-zA-Z0-9]+$]]; then echo "INVALID"; fi 思考? *更新* 变量TITLE目前只有大写文本,所以它应该通过,不应输出任何内容.但是,如果我向TITLE添加一个特殊字符,IF语句应该捕获它并回显INVALID.目前它不起作用.它总是回声无效.我认为这是因为我的正则表达式是错误的.我想我写它的方式,它寻找一个包含所有三个标题的标题. Bash 4.2.25 这个想法是,用户应该能够添加任何标题,只要它只包含大写,小写或数字.所有其他角色都应该失败. *更新* 如果TITLE = ThisIsAValidTitle它回声无效. 如果TITLE = ThisIs @@@@@@@ InvalidTitle,它也无效. *解决方案* 很奇怪,当我简化它时,它开始工作了: TEST="Valid0" if ! [[ "$TEST" =~ [^a-zA-Z0-9] ]]; then echo "VALID" else echo "INVALID" fi *真正解决方案* 我的变量中有空格…… DUH 对不起麻烦的家伙…… *最终解决方案* 这说明了标题中的空格 if ! [[ "$TITLE" =~ [^a-zA-Z0-9 ] ]]; then echo "VALID" else echo "INVALID" fi 解决方法
我会颠倒逻辑.测试无效字符并在至少存在一个警告时回显警告:
if [[ "$TITLE" =~ [^a-zA-Z0-9] ]]; then echo "INVALID" fi 话虽如此,您的原始支票对我有用,因此您可能需要提供更多上下文(即脚本的更大部分). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 解决vue组件中使用v-for出现告警问题及v for指令介绍
- PostgreSQL触发器无法正常工作 – 既不是BEFORE也不是AFTER
- Linux中Oracle启动侦听报错TNS:permission denied的解决方法
- 禁用Ruby on Mavericks上的app nap
- ruby-on-rails – rails button_to:disabled => true仍然显
- 从未见过C方法初始化Linux内核源代码中发现的结构数组
- vue使用facebook twitter分享示例
- 构建Hybrid应用-ionic命令
- 实现一个代码来模拟c中的非确定性的有限自动机
- gdb调试ns-3 netanim中的写入xml