【发布时间】:2011-04-24 20:18:23
【问题描述】:
我正在尝试使用 preg_replace 将给定列表中的单词和单词序列包装起来。它几乎可以工作,但在某些用例中它不起作用,我不知道它是如何工作的。
例如我这样做:
// sort by descending length
usort($this->_keywords, function($a,$b){return(strlen($a)<strlen($b));});
// wrapper is -%string%-
foreach ($this->_keywords as $keyword) {
$value = preg_replace('/((?!-)' . $keyword . '(?!-))/i', str_replace('%string%', '\1', $this->_wrapper), $value);
}
来自这个关键字列表:
- 洛雷姆
- ipsum
- 坐在一起
- 空
- sed
- sed enim
我想要结果:
-Lorem- -ipsum- dolor -sit amet-, consectetur adipiscing 精英。菜豆 rhoncus venenatis orci sed porta。赛德 非多洛厄洛斯。暂停马萨 -sit amet- nulla egestas facilisis。克拉斯 fringilla, leo ac ullamcorper semper, urna eros pretium lectus, nec rhoncus ligula risus eu velit。 Nulla eu 大皮布斯麦格纳。 sed vehicula tristique 拉西尼亚。 Maecenas tincidunt metus 在 urna consequat nec congue libero 伊库利斯。 Nulla facilisi。菜豆 -sed- sem ut risus mattis accumsan eu -sed 敌人-。 Pellentesque 居民 morbi tristique senectus et netus et malesuada 名声 ac turpis egestas。 Suspendisse id est velit, eu cursus 夸姆Vivamus lacinia euismod pretium。
有什么想法吗?
【问题讨论】:
-
您遇到的具体问题是什么?
标签: php regex word text-analysis