gpt4 book ai didi

python rstrip或通过字符模式删除字符串结尾

转载 作者:太空狗 更新时间:2023-10-29 23:57:10 25 4
gpt4 key购买 nike

我正在尝试去除此列中字符串的末尾。我已经了解了如何在字符串末尾删除特定字符或一组字符,但如何根据模式执行此操作?

我想删除 'team' 列中我们看到小写字母后跟大写字母的字符串的整个结尾。然后从大写字母开始删除。我想要下面的 'team' 列:

   team                              pts/g
St. Louis RamsSt. Louis 32.875
Washington RedskinsWashington 27.6875
Minnesota VikingsMinnesota 24.9375
Indianapolis ColtsIndianapolis 26.4375
Oakland RaidersOakland 24.375
Carolina PanthersCarolina 26.3125
Jacksonville JaguarsJacksonville 24.75
Chicago BearsChicago 17.0
Green Bay PackersGreen Bay 22.3125
San Francisco 49ersSan Francisco 18.4375
Buffalo BillsBuffalo 20.0

看起来像这样:

   team                              pts/g
St. Louis Rams 32.875
Washington Redskins 27.6875
Minnesota Vikings 24.9375
Indianapolis Colts 26.4375
Oakland Raiders 24.375
Carolina Panthers 26.3125
Jacksonville Jaguars 24.75
Chicago Bears 17.0
Green Bay Packers 22.3125
San Francisco 49ers 18.4375
Buffalo Bills 20.0

最佳答案

您可以使用 re.sub(pattern, repl, string)为此。

让我们使用这个正则表达式进行匹配:

([a-z])[A-Z].*?(  )

它匹配一个小写字符 ([a-z]),然后是一个大写字符 [A-Z] 和任何字符 .*? 直到它命中两个空格 ( )。小写字符和两个空格在一个组中,因此可以在使用 re.sub:

new_text = re.sub(r"([a-z])[A-Z].*?(  )", r"\1\2", text)

示例的输出:

   team                              pts/g
St. Louis Rams 32.875
Washington Redskins 27.6875
Minnesota Vikings 24.9375
Indianapolis Colts 26.4375
Oakland Raiders 24.375
Carolina Panthers 26.3125
Jacksonville Jaguars 24.75
Chicago Bears 17.0
Green Bay Packers 22.3125
San Francisco 49ers 18.4375
Buffalo Bills 20.0

这搞乱了空间对齐。可能与你无关,但如果你想用空格替换删除的字符,你可以将一个函数而不是替换字符串传递给 re.sub,它需要一个 Match。对象并返回一个 str:

def replace_with_spaces(match):
return match.group(1) + " "*len(match.group(2)) + match.group(3)

然后像这样使用它(注意我是如何将要替换的部分也放入正则表达式组中的):

new_text = re.sub(r"([a-z])([A-Z].*?)(  )", replace_with_spaces, text)

这会产生:

   team                              pts/g
St. Louis Rams 32.875
Washington Redskins 27.687
Minnesota Vikings 24.937
Indianapolis Colts 26.437
Oakland Raiders 24.375
Carolina Panthers 26.312
Jacksonville Jaguars 24.75
Chicago Bears 17.0
Green Bay Packers 22.312
San Francisco 49ers 18.437
Buffalo Bills 20.0

关于python rstrip或通过字符模式删除字符串结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46364233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com