gpt4 book ai didi

python - 使用正则表达式在 Python 中分割句子

转载 作者:行者123 更新时间:2023-12-01 04:59:49 25 4
gpt4 key购买 nike

我正在尝试从句子中分割单词、标点符号和数字。但是,我的代码产生了预期之外的输出。我该如何修复它?

这是我的输入文本(在文本文件中):

 "I 2changed to ask then, said that mildes't of men2,

我的代码输出如下:

['"', 'I', '2', 'changed', 'to', 'ask', 'then', ',', 'said', 'that', "mildes't", 'of', 'men2']

但是,预期输出是:

 ['"', 'I', '2', 'changed', 'to', 'ask', 'then', ',', 'said', 'that', "mildes't", 'of', 'men','2']

这是我的代码:

import re
newlist = []
f = open("Inputfile2.txt",'r')
out = f.readlines()
for line in out:
word = line.strip('\n')
f.close()
lst = re.compile(r"\d|\w+[\w']+|\w|[^\w\s]").findall(word)
print(lst)

最佳答案

在正则表达式中,'\w' 匹配任何字母数字字符,即 [a-zA-Z0-9]。

此外,在正则表达式的第一部分中,应该是“\d+”以匹配多个数字。

通过将“+”更改为“*”,可以将正则表达式“\w+[\w']+|\w”的第二部分和第三部分合并为一个部分。

import re
with open('Inputfile2.txt', 'r') as f:
for line in f:
word = line.strip('\n')
lst = re.compile(r"\d+|[a-zA-Z]+[a-zA-Z']*|[^\w\s]").findall(word)
print(lst)

这给出:

['"', 'I', '2', 'changed', 'to', 'ask', 'then', ',', 'said', 'that', "mildes't", 'of', 'men', '2', ',']

请注意,您的预期输出不正确。它缺少一个“,”。

关于python - 使用正则表达式在 Python 中分割句子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26508291/

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