我是新来的正则表达式,并且无法找到“\”.-“的含义。'.-在正则表达式中的含义
'/^[A-Z \'.-]{2,20}$/i'
所以从我的研究到目前为止,我已经发现,正则表达式开始(^),并需要两到二十({2,20})字母(A-Z)字符。该表达式也是不区分大小写的(/ i)。
有关“\”.-“的含义的任何提示?
我是新来的正则表达式,并且无法找到“\”.-“的含义。'.-在正则表达式中的含义
'/^[A-Z \'.-]{2,20}$/i'
所以从我的研究到目前为止,我已经发现,正则表达式开始(^),并需要两到二十({2,20})字母(A-Z)字符。该表达式也是不区分大小写的(/ i)。
有关“\”.-“的含义的任何提示?
的字符类是整个表达式[A-Z \'.-]
,这意味着任何的A
- Z
,空间,单引号,句号或连字符。 \
需要保护单引号,因为它也被用作字符串引号。该charclass必须重复2至20次,并且由于前导^
和尾随$
定位点必须是匹配字符串的全部内容。
当使用'$'来锚定结束位置时,不要忘记在比赛结束时可能会有'\ n'。 – alex 2011-04-13 02:51:21
这意味着逸出该delmits正则表达式(以不提前结束字符串)单引号('
),然后.
这意味着一个文字.
和-
这意味着字面-
。
在字符范围内,字面上对.
进行处理,并且如果-
不是有效范围的一部分,例如, a-z
,那么它也被字面上处理。
你说的正则表达式匹配字符之间2个20倍,整个字符串a-zA-Z '.-
,带有可选尾随\n
。
它引用了报价。
正则表达式是^[A-Z'.-]{2,20}$
。
在您所使用的编程语言,你把它写成一个带引号的字符串:
'SOMETHING'
要在那里得到一个单引号,它已经反斜线。
这个正则表达式是在一个字符串中。反斜杠是为了避免单引号,所以字符串不会在正则表达式中间提前结束。点和破折号就是它们的样子,一段时间和一条短跑。
所以,你几乎是正确的,除了它是2-20个字母,空格,单引号,句点或短划线。
方括号内的所有内容都是字符类的一部分,并且会与列出的单个字符匹配。在你的例子中,列出的字符是字母A到Z,空格,单引号,句点或连字符。 (注意连字符必须最后列出以避免指示范围,如A-Z。)完整的正则表达式将匹配列出的字符的2到20。单引号是需要的,所以编译器知道你没有结束定义正则表达式的字符串。
的事情的一些例子,这将匹配:
等。
这是什么语言?不同的语言有不同的正则表达式,所以重要的是要知道,主要是因为它似乎是一种语言转义机制而不是正则表达式。 – 2011-04-13 01:39:28
顺便说一句,一些有用的正则表达式实用程序的网站:http://www.regextester.com/ http://regexpal.com/ http://www.gskinner.com/RegExr/(前两个解码正则表达式和最后一个Flash小程序,可让您尝试构建或解码正则表达式)。 – geekosaur 2011-04-13 01:43:59
@Martinho,即使不知道语言,人们似乎也能回答。 :) – tchrist 2011-04-13 02:55:30