【发布时间】:2016-03-04 09:12:19
【问题描述】:
所以我有以下示例:
Lorem ipsum dolor SEARCHWORD sat amet, consectetur adipiscing elit。 Fusce lacus nisl, feugiat laoreet dignissim sat amet, 关键字 gravida vel velit。 Nunc SEARCHWORD elementum risus orci, ac tristique sem fringilla 搜索词 eget。 Morbi maximus lectus nulla, sed tempor nibh SEARCHWORD condimentum ut。 Sed tincidunt cursus nibh
我想匹配 all SEARCHWORD after KEYWORD 并将它们替换为周围的标签,例如 <b>SEARCHWORD</b>。现在一直在尝试和寻找一天......这甚至可以用正则表达式吗?如果是,有人知道如何用正则表达式解决这个问题吗?
所以,我希望在字符串中第一次出现 KEYWORD 之后匹配所有 SEARCHWORD。预期的输出是:
Lorem ipsum dolor SEARCHWORD sat amet, consectetur adipiscing elit。 Fusce lacus nisl, feugiat laoreet dignissim sat amet, 关键字 gravida vel velit。 Nunc SEARCHWORD elementum risus orci, ac tristique sem fringilla SEARCHWORD eget。 Morbi maximus lectus nulla, sed tempor nibh SEARCHWORD condimentum ut。 Sed tincidunt cursus nibh
我试过这个:
mb_ereg_replace('(?<=keyword)(.*?)(searchword)', '\1<b>\2</b>', $text, 'img');
【问题讨论】:
-
你在编程什么?向我们展示您的代码。
-
@WiktorStribiżew
ereg_replace已弃用,但mb_ereg_replace不建议使用。不幸的是,preg_replace('/(?<=keyword)(.*?)(searchword)/iu', '\1<b>\2</b>', $test);仍然无法正常工作。 -
是的,只是仔细检查过。试试this demo。我仍然不知道你的预期输出是什么,所以我不明白什么不起作用,你应该在问题正文中解释,而不是在 cmets 中。
-
@WiktorStribiżew 我正在regex101.com 尝试一切,这就是为什么如果正则表达式有效,编程语言无关紧要。
-
@mansur:regex101 有 bug 和 3 个选项,只有 3 种正则表达式风格,还有更多的风格。了解正则表达式的风格非常重要。 Python
re不支持\G,Java 也不支持。