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

使用python正则表达式仅提取第一个匹配项,python,regex,string,Python,Regex,String,我有一个字符串,如下所示: course_name = "Post Graduate Certificate Programme in Retail Management (PGCPRM) (Online)" course_name_new = "Post Graduate Certificate Programme in Retail Management (Online)" 我只想在第一个括号内的值中提取“PGCPRM”或任何内容,并有一个新的课程名称,如下所示: course_name

我有一个字符串,如下所示:

course_name = "Post Graduate Certificate Programme in Retail Management (PGCPRM) (Online)"
course_name_new = "Post Graduate Certificate Programme in Retail Management (Online)"
我只想在第一个括号内的值中提取“PGCPRM”或任何内容,并有一个新的课程名称,如下所示:

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

您可以使用str.replace():

编辑:如果要替换
(联机)
之前的单词,则需要正则表达式和:

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

>>> re.sub(r'(\(\w+\) ).*?','',course_name)
'Post Graduate Certificate Programme in Retail Management (Online)'
对于提取,请使用
re.search

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

您可以使用str.replace():

编辑:如果要替换
(联机)
之前的单词,则需要正则表达式和:

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

>>> 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
非常简单:

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

提取第一个括号内的值

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

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

提取第一个括号内的值

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

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

course\u name\u new=course\u name.replace(“(PGCPRM)”)
?@dmg否,我想提取第一组括号内的值,不管它是什么。然后你应该适当地提问。在我看来,你想删除第一组括号内的字符串(包括括号)。说你想提取它意味着你想把字符串保存在第一个括号内。但是你的问题含糊不清,问得不好。因此,它是一个可搜索的好问题和好答案的存储库。停止自私,修正你的问题。
course\u name\u new=course\u name.replace(“(PGCPRM)”,”)
?@dmg否,我想提取第一个括号内的值,不管它是什么。然后你应该适当地提问。在我看来,你想删除字符串(包括括号)在第一组括号内。说你想提取它意味着你想把字符串保存在第一个括号内。但是你的问题含糊不清,问得不好。因此,它是一个可搜索的好问题和好答案的存储库。别自私了,修正你的问题。不,我想提取第一个括号内的值,不管它是什么。很抱歉在问题中没有提到这一点。我将更新这个@kasraNo,我想提取第一个括号内的值,不管它是什么。很抱歉在问题中没有提到这一点。我会更新这个@kasra