Perl:正则表达式模式匹配

时间:2018-12-14 21:42:23

标签: regex perl

[A]的正则表达式,它将匹配包含任意多次出现的字母A(并且仅字母A,没有其他字符或空格)的字符串,例如AAAA

2 个答案:

答案 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

对于初学者来说,您需要锚定比赛。