Php Regex查找并替换状态语句

Php Regex查找并替换状态语句,php,regex,Php,Regex,系统消息可能包括以下状态语句: 此函数执行了312次,最常被进程Urbanus使用:16.06.2012 14:10 这个句子总是排在一行 我需要: 检索三个粗体部分: 介于1和n之间的整数(此处为312) 由字符、符号(包括空格但不包括换行符)和数字(此处:Urbanus)组成的字符串 日期可以是“今天”或“昨天”,也可以是YYYY年月日(此处:2012年6月16日) 24小时小时小时:毫米格式的时间(此处:14:10) 从系统消息中删除整个句子 我尝试了以下方法,但无效: $matche

系统消息可能包括以下状态语句:

此函数执行了312次,最常被进程Urbanus使用:16.06.2012 14:10

这个句子总是排在一行

我需要:

  • 检索三个粗体部分:
    • 介于1和n之间的整数(此处为312)
    • 由字符、符号(包括空格但不包括换行符)和数字(此处:Urbanus)组成的字符串
    • 日期可以是“今天”或“昨天”,也可以是YYYY年月日(此处:2012年6月16日)
    • 24小时小时小时:毫米格式的时间(此处:14:10)
  • 从系统消息中删除整个句子
  • 我尝试了以下方法,但无效:

    $matches = preg_replace(
    "/This function was executed ([1-9]|[1-9][0-9]|[1-9][0-9][0-9]) times, most often used by process (.+?): ((Today|Yesterday|[0-9]{2}.[0-9]{2}.[0-9]{4}) ([0-9]{2}:[0-9]{2}))./iU", 
    "", 
    $message);
    
    1部分:

    尝试使用
    preg\u match\u all
    。我还改进了你的模式

    $message = 'This function was executed 312 times, most often used by process Urbanus: 16.06.2012 14:10.';
    
    $matches = array();
    if (preg_match_all("/This function was executed ([1-9]|[1-9][0-9]+) times, most often used by process (\w+?): ((Today|Yesterday|[0-9]{2}.[0-9]{2}.[0-9]{4}) ([0-9]{2}:[0-9]{2}))./i", $message, $matches)) {
        var_dump($matches);
    }
    
    1部分:

    尝试使用
    preg\u match\u all
    。我还改进了你的模式

    $message = 'This function was executed 312 times, most often used by process Urbanus: 16.06.2012 14:10.';
    
    $matches = array();
    if (preg_match_all("/This function was executed ([1-9]|[1-9][0-9]+) times, most often used by process (\w+?): ((Today|Yesterday|[0-9]{2}.[0-9]{2}.[0-9]{4}) ([0-9]{2}:[0-9]{2}))./i", $message, $matches)) {
        var_dump($matches);
    }
    

    \w与空白不匹配,必须为[\w\]。无论“符号”是什么意思,都可能需要使用类似[^:\ n]的东西。@Sergey谢谢,但对我来说并不匹配。此外,如果我使用preg_match(_all),它不会取代匹配的句子,是吗?@Lucas Hoepner用“符号”我指的是冒号、逗号、分号、感叹号等。@FletcherDuran我现在手头没有足够的时间帮你弄清楚,我很想,只要试试看,直到它起作用为止;)\w与空白不匹配,必须为[\w\]。无论“符号”是什么意思,都可能需要使用类似[^:\ n]的东西。@Sergey谢谢,但对我来说并不匹配。此外,如果我使用preg_match(_all),它不会取代匹配的句子,是吗?@Lucas Hoepner用“符号”我指的是冒号、逗号、分号、感叹号等。@FletcherDuran我现在手头没有足够的时间帮你弄清楚,我很想,只要试试看,直到它起作用为止;)