是[A]
的正则表达式,它将匹配包含任意多次出现的字母A(并且仅字母A,没有其他字符或空格)的字符串,例如AAAA
?
答案 0 :(得分:1)
方括号中的所有内容均为character class。这很复杂,以至于它拥有自己的Perl文档页面(在链接中),因此并不奇怪它的工作原理也就不足为奇了。
字符类定义了可能字符的 set 集;在进行模式匹配时,无论方括号内有多少个字符,字符类本身都会匹配输入中的一个字符。
/[A]/ # find one copy of 'A' anywhere in the string
/[abcd]/ # find one copy of any of 'a', 'b', 'c', or 'd' anywhere in the string
/[A..Z]/ # find any one uppercase ASCII character somewhere in the string
如果您希望班级以其他方式匹配,则可以添加修饰符:
/[A..Z]+/ # find one or more uppercase ASCII characters in a row
/[A]*/ # find zero or more 'A's in a row
链接的页面将显示许多其他选项,用于在方括号内指定字符集。但是关键是除非您添加+
(其中一个或多个)或'*'(其中零个或多个),否则一组方括号会匹配一个字符。
答案 1 :(得分:0)
否。
正则表达式模式[A]
可以简化为A
。它将匹配包含A
的任何字符串。尽管其中包含AAAA
,但其中也包含ZAZ
。
对于初学者来说,您需要锚定比赛。