【问题标题】:Split string with multiple-character delimiter使用多字符分隔符拆分字符串
【发布时间】:2025-12-12 06:30:02
【问题描述】:

假设我有以下字符串:

"Hello there. My name is Fred. I am 25.5 years old."

我想把它拆分成句子,这样我就有了以下列表:

["Hello there", "My name is Fred", "I am 25.5 years old"]

如您所见,我想在字符串". " 的所有出现处拆分字符串,而不是"."" " 的任何出现处。 Python 的str.split() 在这种情况下将不起作用,因为它将字符串的每个字符视为单独的分隔符,而不是将整个字符串视为多字符分隔符。有没有简单的方法来解决这个问题?

【问题讨论】:

  • split 在这方面不像 strip

标签: python string split


【解决方案1】:

为我工作

>>> "Hello there. My name is Fr.ed. I am 25.5 years old.".split(". ")
['Hello there', 'My name is Fr.ed', 'I am 25.5 years old.']

【讨论】:

  • 这比使用正则表达式更好!
【解决方案2】:
>>> "Hello there. My name is Fred. I am 25.5 years old.".rstrip(".").split(". ")
['Hello there', 'My name is Fred', 'I am 25.5 years old']

【讨论】:

    【解决方案3】:

    您可以在正则表达式库中使用拆分功能:

    import re
    re.split('\. ', "Hello there. My name is Fred. I am 25.5 years old.")
    

    【讨论】:

    • 感谢您的替代建议。如果我有多个分隔符,这很有帮助。 re.split(r'[\s,.|/]+', 'The.\tbrown fox|jumped,over/the') 返回['The', 'brown', 'fox', 'jumped', 'over', 'the']