>> print c.split() ['help,', 'me'] 我真-6ren">
gpt4 book ai didi

python - 将字符串拆分为单词和标点符号

转载 作者:IT老高 更新时间:2023-10-28 20:22:54 30 4
gpt4 key购买 nike

我正在尝试将字符串拆分为单词和标点符号,并将标点符号添加到拆分生成的列表中。

例如:

>>> c = "help, me"
>>> print c.split()
['help,', 'me']

我真正想要的列表是:

['help', ',', 'me']

所以,我希望字符串在空格处分割,标点符号从单词中分割出来。

我尝试过先解析字符串,然后再运行拆分:

>>> for character in c:
... if character in ".,;!?":
... outputCharacter = " %s" % character
... else:
... outputCharacter = character
... separatedPunctuation += outputCharacter
>>> print separatedPunctuation
help , me
>>> print separatedPunctuation.split()
['help', ',', 'me']

这会产生我想要的结果,但在大文件上速度非常慢。

有没有办法更有效地做到这一点?

最佳答案

这或多或少是这样做的:

>>> import re
>>> re.findall(r"[\w']+|[.,!?;]", "Hello, I'm a string!")
['Hello', ',', "I'm", 'a', 'string', '!']

诀窍是,不要考虑在哪里拆分字符串,而是要在标记中包含什么。

注意事项:

  • 下划线 (_) 被视为内字字符。替换\w,如果你不想这样做。
  • 这不适用于字符串中的(单)引号。
  • 在正则表达式的右半部分添加您要使用的任何其他标点符号。
  • re 中未明确提及的任何内容都会被默默删除。

关于python - 将字符串拆分为单词和标点符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/367155/

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