php – 解析skype日志
发布时间:2020-12-13 22:44:37 所属栏目:PHP教程 来源:网络整理
导读:我需要解析一个Skype日志,抓住所有通话时长并添加它们,并找出整个聊天记录的总呼叫持续时间. 样品: [3/12/2012 11:36:44 AM] *通话结束,持续时间21:33 * 我想我需要使用preg_match和正确的正则表达式.如果可以在更好的同时将实际时间戳存储在数组中. 我认为
我需要解析一个Skype日志,抓住所有通话时长并添加它们,并找出整个聊天记录的总呼叫持续时间.
样品: [3/12/2012 11:36:44 AM] *通话结束,持续时间21:33 * 我想我需要使用preg_match和正确的正则表达式.如果可以在更好的同时将实际时间戳存储在数组中. 我认为我真正难以理解的是实际的正则表达式规则,只需要获取呼叫持续时间. 解决方法
试试这个
(?i)[(?P<time_stamp>[^[]+)]s*[*]s*[a-z,]+(?P<duration>(?:d{2}:?){2,3})s*[*] 说明 " (?i) # Match the remainder of the regex with the options: case insensitive (i) [ # Match the character “[” literally (?P<time_stamp> # Match the regular expression below and capture its match into backreference with name “time_stamp” [^[] # Match any character that is NOT a “[” + # Between one and unlimited times,as many times as possible,giving back as needed (greedy) ) ] # Match the character “]” literally s # Match a single character that is a “whitespace character” (spaces,tabs,and line breaks) * # Between zero and unlimited times,giving back as needed (greedy) [*] # Match the character “*” s # Match a single character that is a “whitespace character” (spaces,giving back as needed (greedy) [a-z,] # Match a single character present in the list below # A character in the range between “a” and “z” # One of the characters “,” + # Between one and unlimited times,giving back as needed (greedy) (?P<duration> # Match the regular expression below and capture its match into backreference with name “duration” (?: # Match the regular expression below d # Match a single digit 0..9 {2} # Exactly 2 times : # Match the character “:” literally ? # Between zero and one times,giving back as needed (greedy) ){2,3} # Between 2 and 3 times,giving back as needed (greedy) ) s # Match a single character that is a “whitespace character” (spaces,giving back as needed (greedy) [*] # Match the character “*” " (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |