我是正则表达的新手,我无法找到“\”.-“的意思。
'/^[A-Z \'.-]{2,20}$/i'
从我的研究到目前为止,我发现正则表达式开始(^)并且需要2到20个({2,20})字母(A-Z)字符。表达式也不区分大小写(/ i)。
有关“\”.-“的含义的任何提示?
答案 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个。需要单引号,因此编译器知道您没有结束定义正则表达式的字符串。
这将匹配的一些例子:
等等。