RegEx不允许使用波形符/控制台键

我有以下正则表达式

(^[a-zA-z]+([a-zA-Z\s-]*)[a-zA-z]+$) 

除了(`)控制台键之外,它不允许所有特殊字符。 有人可以解释我在我的正则表达式中做错了什么,或者我如何删除它?

提前致谢。

不要使用[Az] ,使用[a-zA-Z]

 ^[a-zA-Z]+([a-zA-Z\s-]*)[a-zA-Z]+$ 

否则, [Az]类也会匹配其他一些非字母符号:

在此处输入图像描述

这是regex101.com上的演示 。

只需注意:当为特定语言设置排序规则时, [Az]有时可用于匹配POSIX样式正则表达式中的所有字母。

[[ "ABCEDEF[]_abcdef" =~ ([Az]+) ]] && echo "${BASH_REMATCH[1]}"在Cygwin上, LC_COLLATE="en_US.UTF-8"产生ABCEDF 。 如果将LC_COLLATE设置为C (在Cygwin上,完成export ),它将给出预期的ABCEDEF[]_abcdef