Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 查找月前匹配_Php_String_Preg Match - Fatal编程技术网

Php 查找月前匹配

Php 查找月前匹配,php,string,preg-match,Php,String,Preg Match,我正在通过CURL检查存储在PHP变量中的网页。网页中有一个月名和年名,还有一个名称,因此网页看起来像: December 2012 Name: Jack Brown 我想要一个pregmatch来查找数据,这样我就可以像这样显示它: For Jack Brown - December 2012 我试过了 \b(?:Jan(?:uary)?|Feb(?:ruary)?|...|Dec(?:ember)?) (?:19[7-9]\d|2\d{3})(?=\D|$) 但是它出现了一个错误我为

我正在通过CURL检查存储在PHP变量中的网页。网页中有一个月名和年名,还有一个名称,因此网页看起来像:

December 2012
Name: Jack Brown
我想要一个pregmatch来查找数据,这样我就可以像这样显示它:

For Jack Brown - December 2012
我试过了

\b(?:Jan(?:uary)?|Feb(?:ruary)?|...|Dec(?:ember)?) (?:19[7-9]\d|2\d{3})(?=\D|$) 

但是它出现了一个错误

我为您制作了一个片段,您可以从这里开始

$str = 'December 2012 Name: Jack Brown';
$ptr = "/^(?P<month>:Jan(?:uary)?|Feb(?:ruary)?|Dec(?:ember)?) (?P<year>:19[7-9]\d|2\d{3}) (Name:(?P<name>(.*)))/";
preg_match($ptr, $str, $data);
echo 'For '.trim($data['name']).' - '.$data['month'].' '.$data['year'];
这是一个数组

Array
(
    [0] => December 2012 Name: Jack Brown
    [month] => December
    [1] => December
    [year] => 2012
    [2] => 2012
    [3] => Name: Jack Brown
    [name] =>  Jack Brown
    [4] =>  Jack Brown
    [5] =>  Jack Brown
)
我也试着用它

'February 2005 Name: Bob' => 'For Bob - February 2005'

注:你可以添加更多我懒得添加的月份,干杯

你应该展示你的尝试。另外,“变量”是否在一个字符串中返回所有这些内容?如果是这样的话,这将不是一件简单的事情。如果是不同的变量,您可以使用这些变量创建自己的变量。您会得到什么错误?您是否记得使用分隔符?显示使用此正则表达式的PHP代码也可能会有所帮助。警告:preg_match()[function.preg match]:分隔符不能是字母数字或反斜杠,听起来您好像忘记了。
'February 2005 Name: Bob' => 'For Bob - February 2005'