字符串有两种类型。第一种类型:
'The Five College Region of Western Massachusetts:'
#Doesn't contain "("第二种类型:
'Tuskegee (Tuskegee University)[5]'
#Containing "("如果字符串包含"(",请删除“(”后的所有字符和“(”前的空格。如果不是,则提取所有字符。
我已经弄清楚了如何提取第二种类型的字符串。
r'(.+) \('发布于 2017-02-23 07:50:33
为此,您不需要正则表达式。
university = 'Tuskegee (Tuskegee University)[5]'
print(university.split("(", 1)[0].strip())发布于 2017-02-23 07:52:49
如果要使用正则表达式,请使用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:'发布于 2017-02-23 07:56:43
您可以使用正则表达式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'https://stackoverflow.com/questions/42404444
复制相似问题