我需要解析Skype日志,获取所有通话时长并将它们相加,找出整个聊天记录的通话总时长。示例:[3/12/201211:36:44AM]*通话结束,持续时间21:33*我想我需要使用带有正确正则表达式的preg_match。如果可以同时将实际时间戳存储在数组中,那就更好了。我认为我真正难过的是仅获取通话时长所需的实际正则表达式规则。 最佳答案 试试这个(?i)\[(?P[^[]+)\]\s*[*]\s*[a-z,]+(?P(?:\d{2}:?){2,3})\s*[*]解释"(?i)#Matchtheremainderoftherege
我有这个:$only_left_pattern='/[^-{]\bleft\b/';$subject='body{left:24px;}\np{right:30px;}';$subject=preg_replace($only_left_pattern,'right',$subject);echo$subject;我需要为每个要匹配的字符串声明一个模式。如果有办法我可以匹配右边或左边并根据那个替换?示例(我头脑中的语法):$right_left_pattern='/[^-{](\bleft\b|\bright\b/)';//ifyoufoundleftreplacewithright,
我想找到评论的某些部分。以下是一些例子/**@todonameanother-nametaskID*//*@todonameanother-nametaskID*/目前我正在使用以下正则表达式'/\*[[:space:]]*(?=@todo(.*))/i'这将返回以下内容:*@todonameanother-nametaskIDor*@todonameanother-nametaskID*/我怎样才能只得到@todo和名称,而不是任何星号?期望的输出@todonameanother-nametaskID@todonameanother-nametaskID
我正在尝试使用simpleXML从http://rates.fxcm.com/RatesXML获取数据使用simplexml_load_file()我有时会出错,因为这个网站在xml文件前后总是有奇怪的字符串/数字。示例:20001.275951.27621.277481.27385-123:29:110然后我决定使用file_get_contents并使用simplexml_load_string()将其解析为字符串,之后我使用substr()删除前后的字符串。但是,有时随机字符串会出现在节点之间,如下所示:2.294432.295622.298412.28999137b123:29
我正在研究一个词审查器。我有这段文字:$str="Jeconnaiscecondeconémi".如果“con”是一个完整的单词,而不是另一个单词,我想替换它。如果我这样做:preg_replace("/\b(con)\b/i","###",$str);结果是:"Jeconnaisce###de###émi".Conémi已被审查。这是因为conémi的“é”。 最佳答案 只需添加u正则表达式修饰符preg_replace("/\b(con)\b/iu","###",$str)^---hereitis或者替代解决方案是使用PCREu
我有这个正则表达式,我希望它删除$和$之间的所有文本并将其替换为空字符串,除非两者之间有空格两个$符号,在这种情况下忽略替换。使用我现在拥有的正则表达式,无论是否有空格,它都会将其删除。$random_text$ $randomtext2$Thisissometext Thisissometext";$tmp=preg_replace("/\\$[^].+?\\$/","",$tmp);所以,最后我想将其作为输出。您可能会注意到,第一个段落标记之间的文本消失了,但第二个段落标记仍然存在。 $randomtext2$Thisissometext Thisissometext
我用PHP在我的数据库中检索一个css文件。所以我有:$mycss="SOMECSSSOMECSSSOMECSS"在这个$mycss中,我可以有:div.coul01,.red,.coul01{color:#663333;}div.coul02,.blue,.coul02{color:#3366CC;}对于这个例子,我需要在PHP中检索以div开头的每条指令。第二个元素,这里是“红色”和“蓝色”。你有什么想法吗?谢谢! 最佳答案 如果您真的不想使用任何库并想坚持使用正则表达式,这对您有用:然后在您的$matches变量中,您将拥有如
如果我有一个字符串"HelloIwenttothestoretoday"并且我有一个匹配数组$perfectMatches=array("iwent","storetoday");它应该匹配这两个。(数组可能会变得非常大,所以我更愿意在1个preg_match中完成)编辑:让这个工作!谢谢!preg_match_all("/\b(".implode($perfectMatches,"|").")\b/i",$string,$match1)我还需要一个很难解释的单独的正则表达式。假设我有一个数组$array=array("birthdayparty","icecream");//this
我需要找到位于START和END之间的所有字符串,从匹配的字符串中排除PADDING子字符串。我发现的最好方法是$r="stuffSTARTthisPADDINGisENDstuffstuffSTARTwhatPADDINGIwantPADDINGtoPADDINGfindENDstuff";preg_match_all('/START(.*?)END/',str_replace('PADDING','',$r),$m);print(join($m[1]));>thisiswhatIwanttofind我想用尽可能小的代码来做到这一点:有一个更短的只有preg_match_all没有s
我设法通过使用@ridgerunner在这个问题中建议的解决方案实现了一个将驼峰式大小写转换为单词的函数:SplitcamelCasewordintowordswithphppreg_match(RegularExpression)但是,我还想像这样处理嵌入式缩写:'hasABREVIATIONEmbedded'翻译成'HasABREVIATIONEmbedded'我想到了这个解决方案:输出是:INPUT'oneTwoThreeFour'translatesto'OneTwoThreeFour''StartsWithCap'translatesto'StartsWithCap''has