正则表达式搜索给定单词前后的 5 个单词

Pra*_*adi 2 regex search actionscript-3

我需要编写一个AS3程序来在某些博客的rss中搜索某个“关键字”。

我已经使用写入逻辑String.indexOf()但这是EXTREMELY慢,而且不能扩展。我一直在寻找编写一个查找关键字的正则表达式,但也在关键字之前和之后返回 5 个单词(以显示搜索结果的上下文)。

我想可以忽略重叠的匹配。

我想出了 (?:[a-zA-Z'-]+[^a-zA-Z'-]+){0,5}keyword(?:[^a-zA-Z'-]+[a-zA-Z'-]+){0,5}

唯一的问题是:它不会查找完整的单词。因此,使用该正则表达式

敏捷的棕色狐狸跳过懒惰的狗,然后在狗窝里睡午觉

对于关键字“the”,将匹配

敏捷的棕色狐狸跳过
懒惰的狗,
n 在狗窝里睡午觉

注意“then”被拆分了。

如何只匹配整个单词?

我尝试在关键字前后添加空格和标点符号,但这会导致搜索文本绝对开头和结尾的关键字出现问题。

有什么办法解决这个问题吗?

以现实世界的文本为

SCOR 的这些新挖起杆可提供不同程度的倾角,让您在接近果岭时获得更高的准确性。摄影:Ariel Zambelich/Wired 对于大多数高尔夫球手来说,他们一半以上的击球都在距离球洞 100 码的范围内。这个数字大约为 60% 到 65%,具体取决于您的游戏。虽然从发球台上击球很性感,但对我们大多数人来说,用推杆或挖起杆在我们手中变得更好比增加 15 码对我们的得分更有帮助。SCOR Golf 最近发布了一个名为 SCOR4161 的系统。4161 适用于它制造的球杆的可用倾角,从 41 度到 61 度,以 1 度为增量。这是一个范围,让高尔夫球手可以从他们的铁杆组以及他们可能使用的其他挖起杆中更换标准的 9 号铁杆和挖起杆,配备一套专为 130 码及更近距离精确设计的球杆。SCOR 在这里声称,我们通常用 9 号铁杆和挖起杆击出的击球更像是沙楔击球,而不是 5 号铁杆击球;因此,将这些球杆设计得更像沙楔是有意义的。在我的测试中,我并不那么相信这个概念。通常,我会用 9 号铁杆和 PW 打出更多的完整击球。对这些击球的感觉和技巧的需求并不相同,对我来说,与使用 SCOR 球杆相比,我更倾向于使用我的铁杆上的球杆。但是当我到达传统上被认为是挖起杆(49、54、59 度)的三个阁楼时,我对 SCOR 球杆印象非常深刻。照片来自 Ariel Zambelich/Wired 有几件事很突出。传统上,挖起杆会在球杆上产生一定程度的反弹——后缘低于前缘。这可以防止球杆在您挥杆时陷入地面。通常,不同的球位要求不同的弹跳角度:沙子或较软的草皮弹跳力高,球位更硬、更紧时弹力低。SCOR 球杆包括弹跳角度创新(公司称之为 V-Sole),可让您在不同情况下使用每个球杆。球杆的前缘磨削的弹跳角非常高(有时为 25 度或更大),以防止球杆下陷。但杆底的其余部分以低得多的弹跳角磨削,在 5 到 9 -度范围,在较硬的草皮上提供良好的性能。对我来说,结果是一个多才多艺的俱乐部,感觉它可以处理不同的条件而没有太多问题。在大翻牌击球时,球杆不像传统的沙楔那么容易打开,但这完全被它们在不同球位上的一致性所弥补。其他周到的接触比比皆是。球杆上的握把标有每英寸间隔的拇指位置。这个想法是你可以通过压住球杆来拉开一点距离,然后开始根据你的手的位置准确地了解你击球的距离。SCOR 甚至提供了一本概述该方法的电子书,以及一个让您记下结果的袋子标签。这是更好地控制距离的好方法,这是获得好回合的关键。总的来说,这里没有太多值得商榷的地方。杆头很软,手感很好,虽然在我的测试中它们有一点划痕。杆头的设计经典而充满自信,但杆身和握把上的图形有点让人分心;更低调的东西会很好。但到目前为止,关于 SCOR 最重要的事情是它试图建立一个系统来帮助你的短杆比赛,从球杆到技术。大多数高尔夫球手根据感觉购买挖起杆——他们挑选了一个杂七杂八的组,尝试了几个,看看它们是如何击球的。如果 SCOR 能让您思考如何将所有球杆结合在一起来影响您的比赛,那么它将为整个高尔夫世界提供巨大的服务。有线 美丽的构建质量。跨俱乐部的一致感觉,跨条件的一致表现。用户手册中的明智建议有助于改善短杆。小公司带来出色的客户服务。疲倦 曾经如此略带花哨的设计。俱乐部每个150美元,

anu*_*ava 5

我不知道 actionscript 语法,但下面的正则表达式应该对你有用:

'/((?:\w+\W*){5})\b' . $keyword . '\b((?:\W*\w+){5})/'
Run Code Online (Sandbox Code Playgroud)

如果你愿意,我可以为你提供一个 PHP 演示。

编辑 原始正则表达式(?:[a-zA-Z'-]+[^a-zA-Z'-]+){0,5}keyword(?:[^a-zA-Z'-]+[a-zA-Z'-]+){0,5}正常工作。只需要在关键字前后添加\b