在 php 中分隔句子和年份(数字)



我在PHP中有一个类似"The beer party 2011/2012"的字符串。

我仍然想不通如何将这些年份和句子分成两个不同的数组?喜欢这个:

$arr[0] = the beer party;
$arr[1] = 2011/2012 or if its just 2011 then $arr[1] = 2011;

我已经尝试了d+S+s+但不知道如何将其结合使用。

preg_match('/(.*?)s?(d{4}(?:/d{4})*)$/', $yourString, $matches);

$matches[1]包含句子$matches[2]包含日期。

我会尝试正则表达式"(.*?([\d\/]+("或类似内容。

将其分解是:

(.*?( - 第一个捕获组,任何角色以不贪婪的方式。[\d\/] - 数字或文本"/"(斜杠(。这是为了捕捉像 2011*/*2012 这样的东西。([\d\/]+( - 第二个捕获组捕获上一个语句。

如果第一个捕获组是贪婪的,它也可以捕获数字文字。由于它是不贪婪的,它将停止以允许最长的贪婪捕获器,即第二个捕获组。

有关正则表达式中贪婪的更多信息,您可以查看 http://www.skdevelopment.com/php-regular-expressions.php。

希望这有帮助!

如果您的目标字符串始终采用该格式(即以一个或多个由斜杠分隔的 4 位数字年份结尾(,那么您可以使用这个

preg_match( '/(d{4}(/d{4})*)$/', $string, $matches );

这将匹配字符串中格式为"YYYY"或"YYYY/YYYY"的任何字符串,然后您可以将其删除以获取这两个部分。

最新更新