使用python正则表达式只提取第一个匹配项

2024-06-02 08:01:13 发布

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

我有一个字符串如下:

course_name = "Post Graduate Certificate Programme in Retail Management (PGCPRM) (Online)"

我只想提取“PGCPRM”或第一个括号内的值,并有一个新的课程名称,如下所示:

^{pr2}$

Tags: 字符串nameincertificatepostmanagement括号online
3条回答

在第一个括号中提取值

>>> course_name = "Post Graduate Certificate Programme in Retail Management (PGCPRM) (Online)"
>>> x = re.search(r'\(.*?\)',course_name).group()
>>> x
'(PGCPRM)'

然后更换

^{pr2}$

您可以使用str.replace()

>>> course_name = "Post Graduate Certificate Programme in Retail Management (PGCPRM) (Online)"
>>> course_name.replace('(PGCPRM) ','')
'Post Graduate Certificate Programme in Retail Management (Online)'

编辑:如果要替换(Online)之前的单词,则需要regex和positive look-behind

^{pr2}$

或者,如果要删除第一个括号,请使用以下命令:

>>> re.sub(r'(\(\w+\) ).*?','',course_name)
'Post Graduate Certificate Programme in Retail Management (Online)'

提取时使用re.search

>>> re.search(r'(\(.*?\))',course_name).group(0)
'(PGCPRM)'

很简单:

In [8]: course_name
Out[8]: 'Post Graduate Certificate Programme in Retail Management (PGCPRM) (Online)'

In [9]: print re.sub('\([A-Z]+\)\s*', '', course_name)
Post Graduate Certificate Programme in Retail Management (Online)

In [17]: print re.search('\(([A-Z]+)\)\s*', course_name).groups()[0]
PGCPRM

相关问题 更多 >