0

执行以下函数调用后,$matches 数组包含多少个元素?

this('/^(\d{1,2}([az]+))(?:\s*)\S+ (?=200[0-9])/', '2006 年 3 月 21 日', $matches );

A. 1

B. 2

三、3

D. 4

我知道答案是 C。我不知道你是如何得到他们的。据我所知,我了解我们如何获得 3 月 21 日。我不明白你如何获得 21 和 st。如果这可以向我解释。

4

1 回答 1

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])

如果你想让你的 'st' 作为另一场比赛,我想你应该使用

'/^(\d{1,2})([a-z]+)(?:\s*)\S+ (?=200[0-9])/'

作为你的正则表达式

于 2013-06-06T19:54:42.090 回答