Python 中将字符串拆分为单词和标点符号

使用 re.findall() 方法将字符串拆分为单词和标点符号,例如 result = re.findall(r[\w’\”]+|[,.!?]”, my_str)。findall() 方法将根据空白字符和标点符号拆分字符串,并返回匹配列表 。

import re

my_str = """One, "Two" Three. Four! Five? I'm """

result = re.findall(r"[\w'\"]+|[,.!?]", my_str)

# ?️ ['One', ',', '"Two"', 'Three', '.', 'Four', '!', 'Five', '?', "I'm"]
print(result)

Python 中将字符串拆分为单词和标点符号

re.findall 方法将一个模式和一个字符串作为参数,并返回一个字符串列表,其中包含字符串中该模式的所有非重叠匹配项。

方括号 [] 用于表示一组字符。

如果设置了 ASCII 标志,\w 字符匹配 **[a-zA-Z0-9_]**。

我们的字符集还包括单引号和双引号。

import re

my_str = """One, "Two" Three. Four! Five? I'm """

result = re.findall(r"[\w'\"]+|[,.!?]", my_str)

# ?️ ['One', ',', '"Two"', 'Three', '.', 'Four', '!', 'Five', '?', "I'm"]
print(result)

如果要从结果中排除单引号或双引号,请删除方括号之间的 ‘ 和 \” 字符。

+ 与前面的字符匹配 1 次或多次。

第二组方括号匹配标点符号 – 逗号、点、感叹号和问号。

我们可以在方括号之间添加任何其他标点符号,例如 一个冒号 :,一个分号 ; ,方括号或圆括号。

我们可以根据用例调整正则表达式。 文档的这一部分包含有关每个特殊字符的作用的信息。

这是完整的代码片段。

import re

my_str = """One, "Two" Three. Four! Five? I'm """

# result = re.findall(r"[\w'\"]+|[,.!?]", my_str)
result = re.findall(r"[\w]+|[,.!?]", my_str)

# ?️ ['One', ',', '"Two"', 'Three', '.', 'Four', '!', 'Five', '?', "I'm"]
print(result)