我在四处寻找一种方法来抓住一个找到的匹配词,但它们对我的情况来说太复杂了。我只需要一个regex语句来获取匹配单词前后的单词,比如10个。有人能帮我建立一个模式吗?在
例如,让我们来看看这个句子(没有意义):
sentence = "The hairy yellow, stinkin' dog, sat round' the c4mpfir3 and ate the brown/yellow smore's that the kids(*adults) were makin."
假设我们要在smore之前和之后匹配3个单词(已经清理以匹配)。输出将是:
^{pr2}$现在让我们举一个例子,想在臭屁之前和之后用一个词:
"yellow, stinkin' dog"
另一个例子。”周六:
"yellow, stinkin' dog, round' the and
现在我们来做一个新句子:
sentence = "If the problem is still there after 30 minutes. Give up"
如果我试图匹配那里的单词,并在输出前后各取两个单词:
"is still there after minutes"
我知道不是10,但我想你明白了吗?如果没有,让我知道,我会提供更多。当我做这个的时候,我意识到我想要的比我原来想象的要多。我对regex还是个新手,但我要尝试一下这种模式。在
('[a-zA-Z\'.,/]{3}(word_to_match)[a-zA-Z\'.,/]{3}')
谢谢
你可以开始使用regex
第一组在你的目标之前有单词,第二组有后面的单词
在这个例子中,我选择捕捉2个单词,但是你可以随意调整它。在
让我知道它如何进行,如果它对你的输入有效。在
你可以通过阅读这个简短的建议来改进你的问题http://worksol.be/regex.html
{1美元^
下面是“word”的一个可能的定义:一个非空格字符的字符串。还有一个:一串字母和数字,但没有标点符号。Python为两者提供了方便的快捷方式。在
\w
是具有第二个含义的任何“单词”字符(字母和数字),而\W
是任何其他字符。这样使用:如果您喜欢第一个定义,只需使用
^{pr2}$\S
(任何不是空格的字符)和\s
(任何空格字符):你会注意到我在前后匹配了0到4个单词。这样,如果你的单词在句子中是第三个,你仍然可以得到一个匹配。(搜索是“贪婪的”,所以如果可能的话,你总能得到4个)。在
相关问题 更多 >
编程相关推荐