2

这种类型的表达式“开始日期:[某个月份] [dd],[yyyy]”的正则表达式是什么,其中输入了整个月份......我想提取这个字符串,然后进一步处理它..

4

4 回答 4

1

这取决于您想要的严格程度:

/Start Date: ([a-zA-Z]+) (\d{2}), (\d{4})/

……应该这样做。

更严格:

/Start Date: (January|February|March|April|May|June|July|August|September|October|November|December) (\d{2}), (\d{4})/
于 2012-07-04T10:17:23.320 回答
1
<?php
$a = 'Start Date: Febuary 10, 2012';
if(preg_match('/Start Date: (\S+) (\d+), (\d{4})/', $a, $matches)) {
  print_r($matches);
}

将为您提供 $matches =

Array
(
    [0] => Start Date: Febuary 10, 2012
    [1] => Febuary
    [2] => 10
    [3] => 2012
)
于 2012-07-04T10:18:51.603 回答
0

干得好。

preg_match(/Start Date: ([^\s]+) \d{2}, \d{4}/, $date, $matches);
echo $matches[1];
于 2012-07-04T10:19:25.910 回答
0

我会做类似的事情:

Start Date: \[(\w+)\] \[(\d{2,2})\], \[(\d{4,4})\]

此正则表达式不直接验证月份,而是匹配该模式并将月份、日期和年份提取为捕获的组,因此您可以根据地图进行验证。

上面的表达式假设您也想匹配 [ ] 字符,如果您不这样做:

Start Date: (\w+) (\d{2,2}), (\d{4,4})
于 2012-07-04T10:19:32.243 回答