1

我有:

Rutsch 是为 rutterman 倾斜他的鱼子而设计的

这是来自 Finnegans Wake 的一句话。这本史诗般的谜语书充满了这样的主因,例如“脱掉那顶白帽子”和“小费”,所有这些都会根据你在书中所处的位置变异成听起来相似的词。我想要的只是一种找到这个特定主题的明显出现的方法,IE

[word1] 是为了 [word2] [word-part1] 他的 [word3]

4

3 回答 3

4

你可以在 Python 中使用正则表达式来做到这一点:

import re
pattern = re.compile(r'(?P<word>.*) is for (?P=word) (?P=word)ing his (?P=word)')
words = pattern.findall(text)

这与您的示例不匹配,但会匹配[word] is for [word] [word-part]ing his [word]. 加入调味料调味。您可以在 re 模块文档中找到更多详细信息。

于 2010-09-09T13:52:49.957 回答
2
import re
# read the book into a variable 'text'
matches = re.findall(r'\w+ is for \w+ \w+ing his \w+', text)
于 2010-09-09T14:07:26.447 回答
0

此解决方案适用于您的示例,而不是您的描述:只有第一个字母是头韵:

pairs = re.findall(r'((.)\w* is for \2\w* \2\w*ing his \2\w*)', fin, re.IGNORECASE)
matches = [ p[0] for p in pairs ]

要搜索与您的描述相匹配的案例,只需将 (.) 替换为 (\w+),然后删除 \w* 的所有实例。

于 2012-02-20T17:32:06.310 回答