在正则表达式中意味着什么

时间:2011-04-13 01:37:54

标签: regex

我是正则表达的新手,我无法找到“\”.-“的意思。

'/^[A-Z \'.-]{2,20}$/i'

从我的研究到目前为止,我发现正则表达式开始(^)并且需要2到20个({2,20})字母(A-Z)字符。表达式也不区分大小写(/ i)。

有关“\”.-“的含义的任何提示?

5 个答案:

答案 0 :(得分:4)

字符类是整个表达式[A-Z \'.-],表示A - Z,空格,单引号,句点或连字符中的任何一个。需要\来保护单引号,因为它也被用作字符串引用。这个charclass必须重复2到20次,并且由于前导^和尾随$锚点必须是匹配字符串的整个内容。

答案 1 :(得分:2)

这意味着要转义拒绝正则表达式的单引号(')(不过早地结束字符串),然后是.,这意味着文字.-表示文字-

在字符范围内,.按字面处理,如果-不是有效范围的一部分,例如a-z,然后对它进行字面处理。

您的正则表达式将字符a-zA-Z '.-与整个字符串匹配2到20次,并带有可选的尾随\n

答案 2 :(得分:1)

这个正则表达式是一个字符串。反斜杠是为了逃避单引号,因此字符串不会在正则表达式的中间提前结束。点和短划线就是它们,一个时期和一个短划线。

所以,你几乎是对的,除了2-20个字母,字母,空格,单引号,句号或短划线。

答案 3 :(得分:0)

引用了这句话。

正则表达式为^[A-Z'.-]{2,20}$

在您使用的编程语言中,您将其编写为带引号的字符串:

'SOMETHING'

要在那里获得单引号,它已被反击。

答案 4 :(得分:0)

方括号内的所有内容都是字符类的一部分,并且会匹配列出的单个字符。在您的示例中,列出的字符是字母A到Z,空格,单引号,句点或连字符。 (注意连字符必须列在最后,以避免指示范围,如A-Z。)完整的正则表达式将匹配列出的字符中的2到20个。需要单引号,因此编译器知道您没有结束定义正则表达式的字符串。

这将匹配的一些例子:

  • ....................
  • abaca af - 。
  • AAfa- - ..
  • .Z

等等。