如何在字符串末尾带有小写字符时从字符串末尾删除大写字符?

时间:2017-03-11 20:32:20

标签: python regex string

我从ESPN的BPI页面(http://www.espn.com/mens-college-basketball/bpi/_/view/resume)抓取大学篮球队的一些数据,以存储在熊猫数据框中。当我将html表读入数据框时,缩写的学校名称将附加到完整的学校名称。例如,我有几个字符串,如下所示:" North CarolinaUNC"。

如何从字符串末尾删除UNC?我尝试使用以下正则表达式来匹配字符串末尾的字符:

name = "North CarolinaUNC"
name = re.sub(r"\z[A-Z]","", name)

但它不会为名字由两个单词组成的学校工作。有没有办法编写一个规则,当它们以小写字符开头时从字符串中删除大写字符?

1 个答案:

答案 0 :(得分:1)

使用$匹配字符串的结尾,使用不匹配的lookbehind来检查大写字母是否位于小写字母之后:

import re
name = "North CarolinaUNC"
name = re.sub(r"(?<=[a-z])[A-Z]+$","", name)

结果North Carolina可以。

使用该表达式,"North Carolina UNC"保持不变,因为大写字母,即使在字符串的末尾,也不会出现在小写字母之后。

相关问题