2011-04-13 188 views
1

我是新来的正则表达式,并且无法找到“\”.-“的含义。'.-在正则表达式中的含义

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

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

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

+0

这是什么语言?不同的语言有不同的正则表达式,所以重要的是要知道,主要是因为它似乎是一种语言转义机制而不是正则表达式。 – 2011-04-13 01:39:28

+0

顺便说一句,一些有用的正则表达式实用程序的网站:http://www.regextester.com/ http://regexpal.com/ http://www.gskinner.com/RegExr/(前两个解码正则表达式和最后一个Flash小程序,可让您尝试构建或解码正则表达式)。 – geekosaur 2011-04-13 01:43:59

+0

@Martinho,即使不知道语言,人们似乎也能回答。 :) – tchrist 2011-04-13 02:55:30

回答

4

的字符类是整个表达式[A-Z \'.-],这意味着任何的A - Z,空间,单引号,句号或连字符。 \需要保护单引号,因为它也被用作字符串引号。该charclass必须重复2至20次,并且由于前导^和尾随$定位点必须是匹配字符串的全部内容。

+0

当使用'$'来锚定结束位置时,不要忘记在比赛结束时可能会有'\ n'。 – alex 2011-04-13 02:51:21

2

这意味着逸出该delmits正则表达式(以不提前结束字符串)单引号('),然后.这意味着一个文字.-这意味着字面-

在字符范围内,字面上对.进行处理,并且如果-不是有效范围的一部分,例如, a-z,那么它也被字面上处理。

你说的正则表达式匹配字符之间2个20倍,整个字符串a-zA-Z '.-,带有可选尾随\n

0

它引用了报价。

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

在您所使用的编程语言,你把它写成一个带引号的字符串:

'SOMETHING'

要在那里得到一个单引号,它已经反斜线。

1

这个正则表达式是在一个字符串中。反斜杠是为了避免单引号,所以字符串不会在正则表达式中间提前结束。点和破折号就是它们的样子,一段时间和一条短跑。

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

0

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

的事情的一些例子,这将匹配:

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

等。

相关问题