Python正则表达式在看到与号时停止

2024-06-26 13:46:05 发布

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

我正在尝试编写一个正则表达式来提取meta标记和与号之间的所有文本

对于下面的示例,我想提取键'我的标签,也就是“这就是想要拉的东西”。问题是我不知道如何让它在和号之前把所有的东西都拉出来。在

$ import re
$ line = 'sometextsometext&My.Tag=This-iswhatIwanttopull&sometextsometext'
$ my_text = re.search('(?<=My\.Tag=)\w+',line)
$ print my_text.group()
$ This

Tags: text标记文本importre示例mytag
2条回答

您可以使用匹配任何除了和号的正则表达式:

$ my_text = re.search('(?<=My\.Tag=)[^&?]*', line)

regex[^&;]*匹配零个或多个不是和号的字符。在

问题是\w与连字符(-)不匹配,因此需要将其包含在character class中。在

my_text = re.search(r'(?<=My\.Tag=)[\w-]+', line)

另一个选项是,使用一个反的[^ ]字符类,表示除&之外的任何字符

^{pr2}$

注意:使用r是Python用于正则表达式模式的原始字符串表示法,以避免转义。在

相关问题 更多 >