以下注册代码是什么意思?
'/^\w{4,20}$/'
答案 0 :(得分:3)
这意味着字符串应包含4到20个单词字符(字母,数字和下划线)。这里:
^
(插入符号)匹配应用正则表达式模式的字符串的开头。匹配位置而不是角色。大多数正则表达式都可以选择在换行符后(即文件中一行的开头)使插入符号匹配$
(美元)匹配应用正则表达式模式的字符串末尾。匹配位置而不是角色。大多数正则表达式都有一个选项,可以在换行符之前(即在文件中的一行末尾)使美元匹配。如果字符串以换行符结束\w
匹配单词字符(字母,数字和下划线)的速记字符类。可以在角色类内外使用。{n,m}
其中n >= 0
和m >= n
在n和m次之间重复上一项。贪婪,重复m次,然后将重复次数减少到n次让我向您展示一个用法示例。比如说,我们的文件包含以下内容:
[spongebob@conductor /tmp]$ cat file.txt
between4and20
therearetoomanyalphanumcharacters
foo
okay
现在您只想获得与您的模式'/^\w{4,20}$/'
匹配的字符串:
[spongebob@conductor /tmp]$ grep -E '^\w{4,20}$' blah
between4and20
okay
在输出时,您只能看到那些符合正则表达式的行。
啊,同样,不要在开场^
之后立即将^
(插入符号)与[
混淆,后者否定字符类,使其与单个字符不匹配列在角色类中。 (如果放置在开头[)之后的任何位置,则指定插入符号,例如[^a-d]
匹配x
(除a
,b
,c
或{之外的任何字符{1}})。
答案 1 :(得分:3)
这意味着:
我认为在学习正则表达式时,你会发现Wikipedia's page on Regular Expressions是一个很大的帮助。
就是这样,没有混淆,^
和$
不一定需要彼此,
如果正则表达式是:
'/^\w{4,20}/'
这意味着:匹配应该在字符串的开始,然后是4-20个字母数字字符。
示例(以粗体显示): Foobar baz
如果正则表达式是:
'/\w{4,20}$/'
这意味着:匹配应位于字符串的结束,后跟4-20个字母数字字符
示例(以粗体显示):Foo barbaz
答案 2 :(得分:1)
/ opening delimiter
^ = start of sting
\w = word character
{x,y} min max
$ = end of string
/end delimiter