以下哪一个正则表达式不能与字符串“https://www.tensorflow.org/”
(不含引号)匹配?
-
[a-z]+://[a-z.]+/
-
https[://]www[.]tensorflow[.]org[/]
-
[htps]+://www.tensorflow.org/
-
[a-zA-Z.:/]+
正则表达式的规则
-
任意一个字符表示匹配任意对应的字符,如a匹配a,7匹配7,-匹配-。
-
[]代表匹配中括号中其中任一个字符,如[abc]匹配a或b或c。
-
-在中括号里面和外面代表含义不同,如在外时,就匹配-,如果在中括号内[a-b]表示匹配26个小写字母中的任一个;[a-zA-Z]匹配大小写共52个字母中任一个;[0-9]匹配十个数字中任一个。
-
^在中括号里面和外面含义不同,如在外时,就表示开头,如^7[0-9]表示匹配开头是7的,且第二位是任一数字的字符串;如果在中括号里面,表示除了这个字符之外的任意字符(包括数字,特殊字符),如[^abc]表示匹配出去abc之外的其他任一字符。
-
.表示匹配任意的字符。
-
\d表示数字。
-
\D表示非数字。
-
\s表示由空字符组成,[ \t\n\r\x\f]。
-
\S表示由非空字符组成,[^\s]。
-
\w表示字母、数字、下划线,[a-zA-Z0-9_]。
-
\W表示不是由字母、数字、下划线组成。
-
?: 表示出现0次或1次。
-
+表示出现1次或多次。
-
*表示出现0次、1次或多次。
-
{n}表示出现n次。
-
{n,m}表示出现n~m次。
-
{n,}表示出现n次或n次以上。
-
XY表示X后面跟着Y,这里X和Y分别是正则表达式的一部分。
-
X|Y表示X或Y,比如"food|f"匹配的是foo(d或f),而"(food)|f"匹配的是food或f。
-
(X)子表达式,将X看做是一个整体
分析:
[://]
这是个很明显的陷阱
[ ] 里面是不重复的,所以等价于[:/]
如果[ ]后面没有带+号的话,是不会贪婪匹配的,就只能匹配到://中的其中一个