在awk中可能更简单,但是在Python中我怎么说呢?

2024-05-18 15:21:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我有:

Rutsch是为了让rutterman大赚一笔

这是芬尼根·韦克的一句话。这本史诗般的谜语书充满了这样的主题词,比如“脱下那顶白帽子”和“小费”,所有这些词都会根据你在书中的位置而变异成听起来相似的词。我所要做的就是找出这个主题词的明显出现

[word1]是指[word2][word-part1]的[word3]


Tags: 帽子wordpart1变异谜语word1word2小费
3条回答

这个解决方案是为您的例子,而不是您的描述:只有第一个字母是头韵:

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*的所有实例。在

import re
# read the book into a variable 'text'
matches = re.findall(r'\w+ is for \w+ \w+ing his \w+', text)

可以使用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模块docs中找到更多详细信息。在

相关问题 更多 >

    热门问题