慕斯王
一种不同的方法,不是更好或更坏(在我看来)是将字符串分成几部分,然后选择你需要的。这样做的好处是将所有内容都放在数组中,因此您可以很容易地选择其他月份和日期。$str = 'September 14-20, 26, 28-30, October 1-8, 10, 11, 15-20, 24, November 25, 28-30';//Explode on [' ', ',', ', ', '-'] $arr = explode(" ", str_replace(['-', ', '], ' ', $str));$months = preg_grep("/\D+/", $arr); // find the months$LastMonth = end($months);$LastDay = end($arr);var_dump($LastMonth, $LastDay); //November, 30https://3v4l.org/GiqtI这也可以这样编写,您可以使用 substr 和 strpos 重新创建完整的月份字符串或选择范围 (28-30) 中的最后几天,或者像这样发布最后一个月的内容:https://3v4l。组织/PBAXU
慕哥9229398
我们可以preg_match在这里尝试使用:$input = "September 14-20, 26, 28-30, October 1-8, 10, 11, 15-20, 24, November 25, 28-30";preg_match('/.*\b([A-Za-z]+).*\b(\d+)$/', $input, $matches);echo "month is: " . $matches[1] . "\n";echo "last day is: " . $matches[2];这打印:month is: Novemberlast day is: 30