我正在使用 bash 4.1.10(4)-release 并且我尝试使用正则表达式来匹配两个大写字母 [A-Z]{2} 然后任何东西。因此,例如 BXCustomerAddress
,CAmaterial
是可以接受的,但 WarehouseMessage
则不行。我有以下用于测试目的的脚本:
#!/bin/bash
if [[ "Ce" =~ [A-Z]{2} ]]; then
echo "match"
fi
我的问题是:
- 当我运行这个脚本时,为什么它返回我有一个匹配项?
- 有谁知道我怎样才能达到我想要的结果?
最佳答案
看起来您打开了 shopt nocaseglob
。关闭它使用:
shopt -u nocaseglob
现在 [[ "Ce"=~ [A-Z]{2} ]]
不应该匹配并将返回 false。
关于regex - Bash 匹配字符串与正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25331100/