python - 当大写字符前面有小写字符时,如何从字符串末尾删除大写字符?

标签 python regex string

我正在从 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)

但它不适用于名称由两个单词组成的学校。有没有办法编写一个规则,当大写字符前面有小写字符时,从字符串中删除这些字符?

最佳答案

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

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

北卡罗来纳州的结果一切正常。

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

关于python - 当大写字符前面有小写字符时,如何从字符串末尾删除大写字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42740293/

相关文章:

algorithm - 总结列表和列表列表的 Pythonic 方式

python - nbconvert jupyter笔记本到pdf(带颜色)

c++ - std::string、wstring、u16/32string 说明

c++ - 如何测试字符串是否包含C++中的任何数字

某些 DELETE 请求的 Python BadStatusLine 错误

python - Postgres 外部数据包装器 : insert to mysql table primary key increment issue

regex - Swift:无法将值类型字符串转换为预期的参数类型 nsmutablestring

javascript - 将正则表达式与 JavaScript 匹配

python - 使用 python 搜索特定重复

ios - 使用多个变量来创建字符串