2
我有以下的正則表達式正則表達式,這並不讓波浪/控制檯鍵
(^[a-zA-z]+([a-zA-Z\s-]*)[a-zA-z]+$)
它禁止除(`)控制檯密鑰的所有特殊字符。 有人可以解釋我的正則表達式做錯了什麼或我可以如何刪除它?
在此先感謝。
我有以下的正則表達式正則表達式,這並不讓波浪/控制檯鍵
(^[a-zA-z]+([a-zA-Z\s-]*)[a-zA-z]+$)
它禁止除(`)控制檯密鑰的所有特殊字符。 有人可以解釋我的正則表達式做錯了什麼或我可以如何刪除它?
在此先感謝。
不要使用[A-z]
,使用[a-zA-Z]
:
^[a-zA-Z]+([a-zA-Z\s-]*)[a-zA-Z]+$
否則,[A-z]
類將匹配其他一些非字母符號,太:
這裏是一個demo on regex101.com。
只需注意:[A-z]
有時可用於在爲特定語言設置排序規則時匹配POSIX樣式正則表達式中的所有字母。
[[ "ABCEDEF[]_abcdef" =~ ([A-z]+) ]] && echo "${BASH_REMATCH[1]}"
在Cygwin上用LC_COLLATE="en_US.UTF-8"
得到ABCEDF
。 如果您將LC_COLLATE
設置爲C
(在Cygwin上,使用export
完成),它會給出預期的ABCEDEF[]_abcdef
。
謝謝不知道 –
很好的解釋+1 –