正则表达式生成额外输出

2024-09-30 04:40:03 发布

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

我有一根这样的线-:

st = "url=these,url=are,url=test,url=questions"

现在我需要从这个字符串生成所有url的值。现在我使用的regexp是这样的-:

import re
re.findall(r'([^\(url=\)]+)',st)

现在我想要的输出是['these,', 'are,', 'test,', 'questions'],但是我的regexp给出了 ['these,', 'a', 'e,', 'test,', 'q', 'estions']这将作为输出。你知道吗

那么,修改后的regexp应该是什么,以及为什么我的regexp不能提供所需的输出。你知道吗


Tags: 字符串testimportreurlarequestionsst
3条回答

你可能想要下一个:

>>> re.findall(r'url=(\w+)',st)
['these', 'are', 'test', 'questions']

这是因为正则表达式是基于字母“url”拆分的。你知道吗

这对我很有用:

re.findall(r'url=([^,]+)',st)

您已经使用方括号[]来选择字符。您得到了[^\(url=\)],它匹配除(,u,r,l,=和)之外的任何字符。你知道吗

相反,您需要匹配“url=”的url=([^,]+),然后继续匹配,直到找到一个非逗号字符。你知道吗

相关问题 更多 >

    热门问题