php – 正则表达式帮助:如何匹配包含“或”运算符的正则表达式
发布时间:2020-12-13 16:48:41 所属栏目:PHP教程 来源:网络整理
导读:我正在使用php的preg_replace(). 基本上我有两种可能的字符串匹配: 你好真实世界 问候 这是我想要完成的事情: 你好 / span真实世界 格力 / span tings 规则解释:如果字符串包含空格,请插入 / span在第一个空格字符之后.如果字符串不包含空格(单词),请插入
我正在使用php的preg_replace().
基本上我有两种可能的字符串匹配: >你好真实世界 这是我想要完成的事情: >你好< / span>真实世界 规则解释:如果字符串包含空格,请插入< / span>在第一个空格字符之后.如果字符串不包含空格(单词),请插入< / span>在字符串的中间(/ – 如果奇数字符计数). 到目前为止,我已经提出了一个长期工作的解决方案: <?php $str = "Hello Real World"; echo preg_match("/ /",$str) ? preg_replace("/ /"," </span>",$str,1) : preg_replace("/.{" . round(strlen($str)/2) . "}/","$0</span>",1); ?> 但是,我相信只需要一个preg_replace()调用就可以实现更短更优雅的正则表达式. 任何想法如何只使用单个preg_replace()调用?例如.: preg_replace("/ |.{" . round(strlen($str)/2) . "}/",1) 解决方法
如果字符串中有空格,则正则表达式引擎不会提前知道.尽管您确实需要多个函数,但您根本不需要使用正则表达式来执行此操作:
$pos = strpos($str,' '); if ($pos === false) { //No space found $pos = intval(strlen($str) / 2); } else { //we want to insert *after* the space $pos++; } $str = substr_replace($str,'</span>',$pos,0); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |