我有一个单词列表(甚至在一个对象中有2到3个单词)。我编译了一个正则表达式,将列表中的任何单词与随机字符串相匹配。如果匹配,则返回列表中的该对象,否则将对字符串执行另一个正则表达式以返回表达式。
我的代码:
“layouts”是单词列表,“layout\ re”使用列表中的单词匹配字符串“str”。如果ms出现在list中,则按原样返回ms,否则使用p
表达式返回模式。你知道吗
def layout_corr(str):
ms = layout_re.search(str)
if ms in layouts:
ms=ms
else:
p = re.compile(r'(?:\w+\s+){1,2}layout')
ms = re.findall(p,str)
return ms
我得到的输出是else
语句的输出。
例如:-str = " no 804 8th main 2nd c cross hrbr layout 1st block"
列表包含“hrbr layout”,因此必须返回hrbr layout。但是函数返回"cross hrbr layout"
,这是由else
语句计算的ms。。if
语句有什么问题??你知道吗
re.search
返回匹配对象,而不是字符串,因此:将始终返回false。改用这个:
1)将
ms=ms
更改为return ms
2)为了“捕获”字符串
"hrbr layout"
-更改行:收件人:
演示:
相关问题 更多 >
编程相关推荐