在以下函数调用之后,$ matches数组包含多少个元素 执行?
this('/ ^(\ d {1,2}([a-z] +))(?:\ s *)\ S +(?= 200 [0-9])/','3月21日 2006',$ match);
一个。 1
B中。 2
℃。 3
d。 4
我知道答案是C.我无法弄清楚你是如何得到他们的。从我能说出来并弄清楚我明白我们如何得到3月21日。我不知道你是如何得到21和st。如果这可以向我解释。
答案 0 :(得分:2)
'/^(\d{1,2}([a-z]+))(?:\s*)\S+ (?=200[0-9])/'
读为3场比赛。
(\d{1,2}([a-z]+))
是第一个。正则表达式仅返回表达式的第一级,因此它将匹配解析为
(\d{1,2}st)
在你的情况下。
第二和第三是
(?:\s*)
和
(?=200[0-9])
如果你想得到你的'作为另一场比赛,我想你应该使用
'/^(\d{1,2})([a-z]+)(?:\s*)\S+ (?=200[0-9])/'
作为你的正则表达式