我想使用正则表达式将所有文本片段打印在另一个文本中找到的列表中。这两个文本都是由用户提示的,并且名称(egg
和egg_carton
只是名称,与鸡蛋无关)。以下代码显示一个空列表。我认为问题是代码的re.compile
部分,但我不知道如何解决此问题。我希望以其形式修改代码,而不是完全解决该问题的其他方法。赞赏。
import re
egg= input()
egg_carton = input()
text_fragment = re.compile(r'(egg)')
find_all = text_fragment.findall(egg_carton)
print(find_all)
答案 0 :(得分:2)
如果要在egg
(即egg = "up"
)中查找egg_carton
(即egg_carton = "upupupup"
)的值,则需要使用:
text_fragment = re.compile(r'({0})'.format(egg))
.format(egg)
将{0}
转换为包含egg
的值。因此,如果为egg = "up"
,则等同于:
text_fragment = re.compile(r'(up)')
将所有内容放在一起:
import re
egg= raw_input()
egg_carton = raw_input()
text_fragment = re.compile(r'({0})'.format(egg)) # same as: re.compile(r'(up)')
find_all = text_fragment.findall(egg_carton)
print(find_all)
给我这个输出:
['up', 'up', 'up', 'up']
您可以在Python3文档中找到有关"string".format()
函数的更多信息:https://docs.python.org/3.4/library/functions.html#format