Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 正则表达式返回重复的结果_Python_Regex - Fatal编程技术网

Python 正则表达式返回重复的结果

Python 正则表达式返回重复的结果,python,regex,Python,Regex,对于这个正则表达式代码,我试图找到两个关键字“拒绝”或“拒绝”与“访问”或“服务”同时出现的情况: 打印match1时,它是输出: [('declined', 'visit'), ('declined', 'visit'), ('declined', 'visit'), ('declined', 'visit'), ('declined', 'visit'), ('declined', 'visit'), ('declined', 'visit'), ('declined', 'visit'),

对于这个正则表达式代码,我试图找到两个关键字“拒绝”或“拒绝”与“访问”或“服务”同时出现的情况:

打印match1时,它是输出:

[('declined', 'visit'), ('declined', 'visit'), ('declined', 'visit'), ('declined', 'visit'), ('declined', 'visit'), ('declined', 'visit'), ('declined', 'visit'), ('declined', 'visit'), ('declined', 'visit'), ('declined', 'visit'), ('declined', 'visit'), ('declined', 'visit'), ('declined', 'visit'), ('declined', 'visit')]
但我只想打印一个输出:
(“谢绝”、“访问”)

请告诉我代码的哪一部分出错了好吗?

re.findall()
将返回指定内容的所有出现的列表。如果你只想要,比方说,列表中的第一个元素

您可以使用
0
的订阅:

row = " the patient declined to attend the visit"
    match1 = re.findall("(?=.*(refus\w*|declin\w*))(?=.*(servic\w*|visit\w*))", str(row))  # write it as social security
    print (match1[0])

将模式锚定在开始处:
re.findall(r“^(?=.*(refus\w*| declin\w*))(?=.*(servic\w*| visit\w*)”,str(row))
@Wiktor,谢谢。那么为什么会发生这种错误呢?您使用的是
re.findall
,它返回字符串中的所有匹配项,并且有很多匹配项。使用
re.search
或在开始时锚定模式。但在示例中,我只有一个“谢绝”和一个“访问”。FindAll应该只找到那些,不是吗?你测试过你的模式了吗?有。另外,请参见
row = " the patient declined to attend the visit"
    match1 = re.findall("(?=.*(refus\w*|declin\w*))(?=.*(servic\w*|visit\w*))", str(row))  # write it as social security
    print (match1[0])