我需要按照/
,:
或whitespace的顺序拆分(但不是preg_split()
)我的标题。例如,如果我拆分/
,那么我不想打扰寻找:
或空格。我可以在这里使用preg_replace()吗?还是我需要使用preg_split()?
我以为我可以用正则表达式做(输入字符串,这里将永远具有HTML),则它
$delimiters = array('/', ':', '\s');
$title = preg_replace('@(' . implode('|', $delimiters) . ')(.*)[email protected]', '$1 <span>$2</span>', $title, 1);
正则表达式我会匹配第一个空间,而不是与别人打扰。这不是我想要的。
很显然,我可以strpos()
为其他字符(:
和/
),从分隔符删除\s
若发现其他人。这将解决第一个问题。
我也想选择最远的右匹配,即如果在空格上分割一个句子,我想要匹配最后一个单词。
我需要在这里使用preg_split()
,并保存分隔符,或者我可以用一个正则表达式吗?
谢谢
您能否提供一些示例输入和输出?我不认为我完全明白你的问题。 – NullUserException 2010-09-24 02:55:07
@NullUserException我加了我自己的答案(希望能够回答上面的问题),但是如果你能找到更好的解决方案,可以随意发布。谢谢! – alex 2010-09-24 02:56:58