regex - 如何构造正则表达式来比较shell脚本中不区分大小写的字符串?
问题描述
我正在将命令行参数传递给 shell 脚本,并且正在将它与正则表达式进行比较。以下代码区分大小写:
[[ $1 =~ ^(cat)|(dog)$ ]] && echo "match" || echo "no match"
如何修改这个忽略大小写的正则表达式?我将能够通过cAt
,它应该匹配。
我想使用/i
正则表达式标志,因为它忽略大小写。但是如何在 shell 脚本中使用它呢?我已经尝试过[[ $1 =~ /(cat)|(dog)/i ]]
,但脚本退出时出现语法错误。
StackOverflow 有一个类似的问题,但它没有回答我的询问。我想用来test
比较两个字符串并且不感兴趣使用shopt -s nocasematch
或grep <expression>
解决方案
只需使用
shopt -s nocasematch
在你的命令之前。
或者
shopt -s nocasematch && [[ 'doG' =~ (cat)|(dog) ]] && echo 'hi' || echo 'no match'
推荐阅读
- android-studio - 如何使用 Android Studio avd 解决此问题
- python - RabbitMQ 队列中的 Celery 消息在没有消费者的情况下几秒钟后消失的原因是什么?
- google-apps-script - 通过 Google Apps 脚本获取 Google Drive 中文件的下载链接
- linux - 为什么这个程序集 HTTP 服务器不起作用?
- thymeleaf - 如何在 Thymeleaf 中做 img?
- node.js - 无法在反应 js 中更新注释
- django-rest-framework - 我有空的 Django rest api....我想要用户列表
- vbscript - VBS - 带花括号的发送键
- python - 带有 MS python 扩展的 Visual Studio Code 中的代码建议
- c# - 如何重新索引具有整数 id 的文档?