【发布时间】:2017-08-02 02:11:42
【问题描述】:
我正在从 ESPN 的 BPI 页面 (http://www.espn.com/mens-college-basketball/bpi/_/view/resume) 抓取一些关于大学篮球队的数据,以存储在 pandas 数据框中。当我将 html 表读入数据框时,学校的缩写名称会附加到完整的学校名称中。例如,我有几个看起来像这样的字符串:“North CarolinaUNC”。
如何从字符串末尾删除 UNC?我尝试了以下正则表达式来匹配字符串末尾的字符:
name = "North CarolinaUNC"
name = re.sub(r"\z[A-Z]","", name)
但它不适用于名称由两个单词组成的学校。有没有办法编写一个规则,当字符串前面有小写字符时从字符串中删除大写字符?
【问题讨论】:
-
不幸的是,
\z锚点在 python 正则表达式中不存在,您需要使用$来匹配字符串的结尾或行的结尾 (取决于m修饰符是打开还是关闭). -
在 Python 中,
\Z匹配字符串的末尾。不过$这里就够了,不过应该放在右边,[A-Z]应该是+量化的。请参阅下面的答案 -
@Kaushik 您的标题与您的“有没有办法编写一条规则,当字符串前面带有小写字符时删除大写字符?”。它是哪一个?例如,我认为您不想从“Foo UNC”中删除“UNC”。对吗?
-
对。尽管您已经回答了问题,但我刚刚更新了标题以进行澄清。