- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我想用给定的关键字突出显示给定字符串中的文本,并添加随机数量的周围单词。
例句:
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed.
示例关键字:
dolore magna
期望的结果:(标记关键字前后0-4个词
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
invidunt ut labore et **dolore magna** aliquyam erat, sed
.
我尝试了什么?
( [\w,\.-\?]+){0,5} ".$myKeyword."(.+){2,5}
和([a-zA-Z,. ]+){1,3} ".$n."([a-zA-Z,.]+){1,3}
有什么想法可以改进它并使其更健壮吗?
最佳答案
高亮使用preg_replace功能。这是一个想法:$s = "dolore magna";
$str = preg_replace(
'/\b(?>[\'\w-]+\W+){0,4}'.preg_quote($s, "/").'(?:\W+[\'\w-]+){0,4}/i',
'<b>$0</b>', $str);
测试pattern at regex101或 php test at eval.in . echo $str;
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed.
使用 i
flag对于无大小写匹配 - 如果不需要则删除。第一组 ?>
atomic性能。
['\w-]
(\w
shorthand 作为单词字符,'
和 -
)\W
匹配一个字符,不是单词字符(否定\w
)\b
匹配 word boundary .使用它以获得更好的性能。关于php - 用周围的词突出显示文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31762487/
有没有一种方法可以“标记”对象的属性,使它们在反射中“突出”? 例如: class A { int aa, b; string s1, s2; public int AA
我是一名优秀的程序员,十分优秀!