0

我的 PHP 代码是:

$pattern = '/(Sun|Mon|Tue|Wed|Thu|Fri|Sat)(,| )[\d]{1,2}[A-Z]{1,1}[a-z]{2,2}/';
if (preg_match($pattern, $content, $matches, PREG_OFFSET_CAPTURE)){
    $name = str_replace("(M1) ", "", substr($content, 0, $matches[0][1]));
    $date = substr($content, $matches[0][1], 15);
}

它适用于一个匹配子模式。像:

  
B'Meadow Alarm Tue,17Sep 19:48 Ur001 General User Closeing By User
名称: B'Meadow 警报器  
日期:周二,9月17日 19:48

我的字符串是:

(M1) B'Meadow Alarm Tue,17Sep 19:48 Ur001 General User Closes By User (M2) B'Meadow Alarm Tue,18Nov 09:18 Ur001 General User Closed By User

它应该是:

名称: B'Meadow 警报器  
日期:周二,9月17日 19:48

但实际结果是:

名称:B'Meadow Alarm Tue,17Sep 19:48 Ur001 General User Closeing By User (M2) B'Meadow Alarm  
日期:周二,11月18日09:18  

问题:我的模式有什么问题?或代码?

----------

编辑

对不起大家!我的一位同事将服务器存储库上的这个正则表达式更改为以下一个:
'/(.*)(Sun|Mon|Tue|Wed|Thu|Fri|Sat)(,| )[\d]{1,2}[ AZ]{1,1}[az]{2,2}(.*)/';

但他并没有承诺 git。这就是为什么我在本地存储库中看不到这些更改的原因。(.*) 导致问题。

4

1 回答 1

1

您的模式或代码都不是错误的。您的代码输出完全符合预期。

于 2013-09-17T07:38:16.137 回答