regex - Bash 匹配字符串与正则表达式

标签 regex string bash

我正在使用 bash 4.1.10(4)-release 并且我尝试使用正则表达式来匹配两个大写字母 [A-Z]{2} 然后任何东西。因此,例如 BXCustomerAddressCAmaterial 是可以接受的,但 WarehouseMessage 则不行。我有以下用于测试目的的脚本:

#!/bin/bash

if [[ "Ce" =~ [A-Z]{2} ]]; then
    echo "match"
fi

我的问题是:

  1. 当我运行这个脚本时,为什么它返回我有一个匹配项?
  2. 有谁知道我怎样才能达到我想要的结果?

最佳答案

看起来您打开了 shopt nocaseglob。关闭它使用:

shopt -u nocaseglob

现在 [[ "Ce"=~ [A-Z]{2} ]] 不应该匹配并将返回 false。

关于regex - Bash 匹配字符串与正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25331100/

相关文章:

bash - 什么是特殊的美元符号 shell 变量?

bash - 目录内容和目录条目有什么区别?

c# - 如何在字符串值的中间添加空格?

android - 如何在 Eclipse 中添加字符串资源?

linux - 在 Linux 和 BSD 中使用和不使用 shebang 执行 Bash 脚本

javascript - 将变量传递给.replace,如何使var与replace一起使用?

jquery - 如何向 jQuery 选择器添加字符串?

jQuery 正则表达式返回 url

javascript - 如何创建正则表达式来分割行,除非有斜杠?

Java 正则表达式匹配器不工作