我有这个代码 ^[a-zA-Z]+$ ,它的目的是仅隔离字母,并且它仅在我添加 +$ 之后才起作用,然后它还计算 A33 等内容。我的问题是,+$ 的作用/含义是什么?
答案1
在一个扩展正则表达式(例如 shell 支持的类型bash
), the+
是前面表达式的修饰符([a-zA-Z]
,它自己匹配给定集合中的单个字符),它要求表达式至少匹配一次,但也可能匹配多次。是“行尾锚点”,意味着在范围或$
中的非空字符串之后,除了行尾之外不能有任何其他内容。a-z
A-Z
同样,^
(如表达式中所使用的)是行开头的锚点。
该A33
表达式不会匹配该字符串,因为该表达式33
不允许使用行末尾的位。如果没有$
,表达式将匹配字符串,因为整个表达式将匹配A
开头的子字符串。没有+
(但有$
),它会不是匹配字符串,AAA
因为表达式只允许单个字符。