Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式搜索给定单词前后的5个单词_Regex_Actionscript 3_Search - Fatal编程技术网

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

Regex 正则表达式搜索给定单词前后的5个单词,regex,actionscript-3,search,Regex,Actionscript 3,Search,我需要写一个AS3程序来搜索特定博客rss中的特定关键字 我已经使用String.indexOf编写了逻辑,但是速度非常慢,而且不可扩展。我一直在寻找写一个正则表达式来寻找关键字,但也返回关键字前后5个单词来显示搜索结果的上下文 我想重叠的匹配可以忽略 我想出了?:[a-zA-Z'-]+[^a-zA-Z'-]+{0,5}关键字?:[^a-zA-Z'-]+[a-zA-Z'-]+{0,5} 唯一的问题是:它不寻找完整的单词。所以,在上使用正则表达式 敏捷的棕色狐狸跳过懒狗,然后在狗窝里午睡 对于关键

我需要写一个AS3程序来搜索特定博客rss中的特定关键字

我已经使用String.indexOf编写了逻辑,但是速度非常慢,而且不可扩展。我一直在寻找写一个正则表达式来寻找关键字,但也返回关键字前后5个单词来显示搜索结果的上下文

我想重叠的匹配可以忽略

我想出了?:[a-zA-Z'-]+[^a-zA-Z'-]+{0,5}关键字?:[^a-zA-Z'-]+[a-zA-Z'-]+{0,5}

唯一的问题是:它不寻找完整的单词。所以,在上使用正则表达式

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

对于关键字,将匹配

那只敏捷的棕色狐狸跳了过去 懒惰的狗和 n在狗窝里午睡

请注意,然后会被拆分

如何只匹配整个单词

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

有办法吗

以真实世界的文本为例

这些来自SCOR的新楔子提供不同程度的阁楼,让您在接近果岭时更加准确。Ariel Zambelich/Wired为大多数高尔夫球手拍摄的照片显示,他们一半以上的投篮都在距离球洞100码的范围内进行。这个数字大约为60%到65%,这取决于你的游戏。虽然把球从球座上摔下来很性感,但对我们大多数人来说,用推杆或楔子打得更好比增加15码的射程更有利于我们的得分。SCOR高尔夫最近发布了一个名为SCOR4161的系统。4161用于其制造的球杆的可用阁楼,从41度阁楼一直到61度,增量为1度。这是一个范围,让高尔夫球手取代他们的标准9铁和投球楔从他们的铁套,以及其他楔他们可能会使用,一套球杆设计的精度从130码和更近。SCOR在这里声称,我们通常用9号铁杆和投球楔子击球,比5号铁杆击球更像沙楔子击球;因此,将这些俱乐部设计成更像一个沙楔是有意义的。在我的测试中,我并不那么相信这个观点。通常,我打一个9号铁杆,然后再打一次全垒打。这些投篮对感觉和技巧的要求不一样,对我来说,我倾向于使用我的铁杆球杆,而不是SCOR球杆。但是当我到达三个阁楼时,我对SCOR俱乐部留下了非常深刻的印象。这三个阁楼通常被认为是49度、54度和59度的楔子。传统上,楔子在球杆上有一定的弹跳——后缘低于前缘。当你挥杆时,这可以防止球杆钻入地面。通常,不同的谎言需要不同的反弹角度:沙子或软草皮的反弹角度越高,更硬、更紧的谎言的反弹角度越低。SCOR球杆包括一个弹跳角度创新,该公司称之为V-Sole,允许您在不同情况下使用每个球杆。球杆的最前沿是地面,反弹角度非常大,有时为25度或更大,以防止球杆向内挖掘。但鞋底的其余部分在5到9度的范围内以更低的弹跳率落地,这在硬草地上表现良好。对我来说,结果是一个多才多艺的俱乐部,感觉它处理不同的情况没有太多问题。这些俱乐部不像传统的沙楔子那样容易打开大门进行大的扑救,但这不仅仅是因为他们在不同的谎言中的一致性。其他深思熟虑的话题比比皆是。球杆上的手柄上标记着拇指的位置,每英寸间隔一次。这个想法是,你可以通过掐住球杆来缩短一段距离,然后根据你的手的位置开始准确地了解你击中球杆的距离。SCOR甚至提供了一本概述该方法的电子书,以及一个可以让你记下结果的袋子标签。这是一个更好地控制距离的好方法,这是一个好回合的关键。总的来说,这里没有太多可挑剔的地方。球杆头很软,手感很好,虽然在我的测试中有点划痕。杆头的设计是经典的,充满自信,但杆身和手柄上的图形有点分散注意力;再低调一点就好了。但到目前为止,SCOR最重要的一点是,它试图建立一个系统,帮助你的短打,从俱乐部到技术。大多数高尔夫球手根据感觉购买楔子——他们挑选一组杂色的楔子,试几个,看看它们是如何击球的。如果SCOR能让你想到ho 你们所有的俱乐部联合起来影响你们的比赛,这将给整个高尔夫世界带来巨大的服务。有线漂亮的建设质量。不同俱乐部的一致感受,不同条件下的一致表现。用户手册中的合理建议有助于改进短游戏。小公司带来伟大的客户服务。有点花哨的设计。每家俱乐部150美元,五家俱乐部将为你支付640美元


我不知道actionscript语法,但以下正则表达式适用于您:

'/((?:\w+\W*){5})\b' . $keyword . '\b((?:\W*\w+){5})/'
如果你愿意,我可以为你提供一个PHP的演示

编辑
原始regexp?:[a-zA-Z'-]+[^a-zA-Z'-]+{0,5}关键字:[^a-zA-Z'-]+[a-zA-Z'-]+{0,5}工作正常。只需在关键字前后添加\b我不知道actionscript语法,但下面的正则表达式应该适合您:

'/((?:\w+\W*){5})\b' . $keyword . '\b((?:\W*\w+){5})/'
如果你愿意,我可以为你提供一个PHP的演示

编辑
原始regexp?:[a-zA-Z'-]+[^a-zA-Z'-]+{0,5}关键字:[^a-zA-Z'-]+[a-zA-Z'-]+{0,5}工作正常。只需在关键字

之前和之后添加\b,也许这一个靠近您的表达式将满足您的需要:

只需在关键字或匹配字符串末尾后去掉您不感兴趣的字符

?:[a-zA-Z'-]+[^a-zA-Z'-]+{0,5}关键字?:[^a-zA-Z'-]+$?:[a-zA-Z'-]+[^a-zA-Z'-]*{0,5}


也许这一个接近你的表情会适合你的需要:

只需在关键字或匹配字符串末尾后去掉您不感兴趣的字符

?:[a-zA-Z'-]+[^a-zA-Z'-]+{0,5}关键字?:[^a-zA-Z'-]+$?:[a-zA-Z'-]+[^a-zA-Z'-]*{0,5}


所以在不到一个月的正常使用后,我发现

"((?:[a-zA-Z'-]+[^a-zA-Z'-]+){0,5}\W)(" + keyword + ")(\W(?:[^a-zA-Z'-]+[a-zA-Z'-]+){0,5})"
效果最好


我将单词边界替换为非单词字符。这就允许在关键字前后加标点符号。

因此,在正常使用不到一个月后,我发现

"((?:[a-zA-Z'-]+[^a-zA-Z'-]+){0,5}\W)(" + keyword + ")(\W(?:[^a-zA-Z'-]+[a-zA-Z'-]+){0,5})"
效果最好


我将单词边界替换为非单词字符。这允许在关键字前后加标点。

我认为如果关键字前后少于5个单词,这将不起作用。我把{5}改成了{0,5}是的,你是对的。我以为你只想说5个字,或者什么都不想说。哎哟!!我说得太快了。答案在一个测试句子中非常有效,但现实文本却失败了。我要么根本没有得到结果,要么结果在关键字处停止,即不选择后面的5个单词,即使有单词。知道为什么吗?这个正则表达式:'/?:\w+\w*{0,5}\b'$关键词。”\b?:\W*\W+{0,5}/'工作正常,但请记住,如果您正在尝试“全部匹配”,则下一个匹配将从上一个匹配结束的位置开始。如果两个单词的出现间隔小于10个单词,那么下一个匹配将从上一个匹配的旁边开始。是的,我知道。我不介意。尽管如此,它还是不匹配。当我实际阅读rss时,请查看我从rss中获得的文本,它应该正确匹配,如我的regexp与您的\b does。我认为如果关键字前后少于5个单词,则此操作将不起作用。我把{5}改成了{0,5}是的,你是对的。我以为你只想说5个字,或者什么都不想说。哎哟!!我说得太快了。答案在一个测试句子中非常有效,但现实文本却失败了。我要么根本没有得到结果,要么结果在关键字处停止,即不选择后面的5个单词,即使有单词。知道为什么吗?这个正则表达式:'/?:\w+\w*{0,5}\b'$关键词。”\b?:\W*\W+{0,5}/'工作正常,但请记住,如果您正在尝试“全部匹配”,则下一个匹配将从上一个匹配结束的位置开始。如果两个单词的出现间隔小于10个单词,那么下一个匹配将从上一个匹配的旁边开始。是的,我知道。我不介意。尽管如此,它还是不匹配。当我实际阅读rss时,看到我从rss中获得的文本,它应该正确匹配,就像我的regexp与您的\b does感谢您的答案一样。但是,anubhava将\b放在关键字前后的想法与我原来的regexp很合适+谢谢你的回答。但是,anubhava将\b放在关键字前后的想法与我原来的regexp很合适+不过我还是赞成这个想法