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