Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.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,字符串有两种类型。 第一类: 'The Five College Region of Western Massachusetts:' #Doesn't contain "(" 第二类: 'Tuskegee (Tuskegee University)[5]' #Containing "(" 如果字符串包含“(”,请删除“(”之后的所有字符以及“(”之前的空白。 如果不是,则提取所有字符 我已经研究出如何提取第二种类型的字符串 r'(.+) \(' 你不需要正则表达式 university =

字符串有两种类型。 第一类:

'The Five College Region of Western Massachusetts:'
#Doesn't contain "("
第二类:

'Tuskegee (Tuskegee University)[5]'
#Containing "("
如果字符串包含“(”,请删除“(”之后的所有字符以及“(”之前的空白。 如果不是,则提取所有字符

我已经研究出如何提取第二种类型的字符串

r'(.+) \('

你不需要正则表达式

university = 'Tuskegee (Tuskegee University)[5]'
print(university.split("(", 1)[0].strip())

使用
re.sub
删除
之后的所有内容(
如果要使用正则表达式:

import re
re.sub(r' \(.*', '', 'Tuskegee (Tuskegee University)[5]')
# 'Tuskegee'

re.sub(r' \(.*', '', 'The Five College Region of Western Massachusetts:')
# 'The Five College Region of Western Massachusetts:'

您可以使用regex
re.sub('\s*\(.*',…)
来匹配空格加上“(”。 如果匹配,它将用空字符串替换。如果不匹配,则不替换任何内容

import re
re.sub('\s*\(.*', '', 'The Five College Region of Western Massachusetts:')
#'The Five College Region of Western Massachusetts:'
re.sub('\s*\(.*', '', 'Tuskegee (Tuskegee University)[5]')
#'Tuskegee'