突出显示单词并提取其附近文本的功能 [英] function that highlight a word and extract the text near it

查看:83
本文介绍了突出显示单词并提取其附近文本的功能的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个文本例如:


Etiam porta sem malesuada magna mollis euismod。 Integer posuere erat a
ante venenatis dapibus posuere velit aliquet。 Etiam porta sem
malesuada magna mollis euismod。 Aenean eu leo quam。 Pellentesque
ornare sem lacinia quam venenatis vestibulum。 Fusce dapibus,tellus ac
cursus commodo,tortor mauris condimentum nibh,ut fermentum massa
justo sit amet risus。

Etiam porta sem malesuada magna mollis euismod. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Etiam porta sem malesuada magna mollis euismod. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.

Nulla vitae elit libero,a pharetra augue。 Vestibulum id ligula porta
felis euismod semper。 Vestibulum id ligula porta felis euismod semper。
Maecenas sed diam eget risus varius blandit sit amet non magna。
Vestibulum id ligula porta felis euismod semper。整数posuere erat
an an venenatis dapibus posuere velit aliquet。

Nulla vitae elit libero, a pharetra augue. Vestibulum id ligula porta felis euismod semper. Vestibulum id ligula porta felis euismod semper. Maecenas sed diam eget risus varius blandit sit amet non magna. Vestibulum id ligula porta felis euismod semper. Integer posuere erat a ante venenatis dapibus posuere velit aliquet.

Cras mattis consectetur purus 坐在amet fermentum。 Etiam porta sem
malesuada magna mollis euismod。 Praesent commodo cursus magna,vel
scelerisque nisl consectetur et。 Maecenas faucibus mollis interdum。
Nullam quis risus eget urna mollis ornare vel eu leo。

Cras mattis consectetur purus sit amet fermentum. Etiam porta sem malesuada magna mollis euismod. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Maecenas faucibus mollis interdum. Nullam quis risus eget urna mollis ornare vel eu leo.

该文字显示为对我网站上执行的搜索的描述我希望能够突出显示一个单词/字符串并提取它旁边的文字。

That text appears as description on a search performed in my website and i want to be able to highlight a word/string and extract the text next to it.

我不确定最好的方式是php(可能是)或者只需使用jquery函数。我知道如何在jQuery中突出显示单词,但不知道如何提取文本。

Im not sure is the best way will be php(probably is) or just use a jquery function. I know how to highlight a word in jQuery but not sure how to extract the text.

在这个例子中,我想显示为描述,因为我的搜索字符串是consectetur purus 以下文字。

In this example i want to show as description because my searched string is "consectetur purus" the following text.


.... posuere velit aliquet.Cras mattis consectetur purus sit amet
fermentum。 Etiam porta ....

....posuere velit aliquet.Cras mattis consectetur purus sit amet fermentum. Etiam porta....

如你所见,我不仅会显示突出显示的单词,还会显示前后的一些文字。
实现这一目标的最佳方法是什么?

As you see im not only showing the highlighted word but also some text before and after it. What would be the best method to accomplish this?

我在我的网站上使用swish-e图书馆作为搜索引擎,我的cgi知识是空的我更喜欢尝试php方式。

Im using the swish-e librari as search engine in my website and my knoledge of cgi is null so i prefer to try the php way.

非常感谢您的帮助

推荐答案

在php中使用正则表达式(你可以在JavaScript中做同样的事情)。

Using a regular expression in php (you could do the same in JavaScript, though).

$regex = '/([A-Za-z0-9.,-]+\s*){0,5}\sconsectetur purus(\s|[,.!?])(\s*[A-Za-z0-9.,-]+){0,5}/';
preg_match($regex, $content, $matches);
echo $matches[0];

这匹配使用字母数字字符或之一构建的0-5个字。 - (微调这个)然后是你要找的单词(最后有或没有标点符号),然后是0-5个单词。这将永远不会在中间分解一个单词,因为达到了一定量的字符。

This matches 0-5 words built using alphanumeric chars or one of .,- (finetune this) followed by the words you're looking for (with or without punctuation at the end), followed by 0-5 words. This will never break up a word in the middle because a certain amount of chars is reached.

输出:


posuere velit aliquet。

posuere velit aliquet.

Cras mattis consectetur purus sit amet fermentum。 Etiam porta

Cras mattis consectetur purus sit amet fermentum. Etiam porta

现在你可以对此进行微调,例如删除 \ n ,添加 ... ,突出显示 consectetur purus ...

Now you can finetune this, e.g. remove the \n, add ..., highlight consectetur purus

这篇关于突出显示单词并提取其附近文本的功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆