Python - 从没有正则表达式的段落中的引号中提取单词

Dmtz

我有以下段落作为 .txt 文件的输入:

... lorem“非常胡萝卜,增强了本科体验。”。目前不在 convallis 的 felis。营养元素“犯规”是“中径作者的一次热身!”。赛程为他,足球“伤心”...

这是一个 Python 字符串:

'Lorem "ipsum dolor sit amet, consectetur adipiscing elit.". Praesent non sem urna. Pellentesque elementum "turpi" est, "in fermentum diam auctor aliquam!". Morbi rhoncus erat ipsum, eu "tristique"'

我想创建一个仅包含引用短语的列表,并将引号内的单词隔离为一个列表(由空格分隔)。

输出:

['ipsum', 'dolor', 'sit', 'amet,', 'consectetur', 'adipiscing', 'elit.', 'turpi'', 'in', 'fermentum', 'diam', 'auctor', 'aliquam!', 'tristique']

我的思考过程是读入文件,然后以某种方式用引号拆分段落,但我似乎无法找到让“split()”按照我想要的方式工作的方法。我有一种感觉,这可以通过最少的循环和使用 split() 作为组织数据的方法来完成,而无需使用 re、shlex、csv 或其他导入的模块。

我什至想过将分隔符重新添加到列表中,然后“清理”列表。但即使这样也感觉有点复杂。

下面的代码为数组中的每一项都添加了双引号,这不是我想要的。只是我觉得我可以在使用 split() 后跟踪报价的一种方式。

with open(input_file, "r") as read_file:
     for line in read_file:
          quotes = ['"' + i + '"' for i in line.split('"') if i]
凯文王 |

从我的评论复制:

使用 " 作为分隔符进行拆分后,您可以简单地提取列表的所有奇数索引元素。然后,正常拆分这些元素(使用空格分隔符)并将列表连接在一起。

例子:

text = """Lorem "ipsum dolor sit amet, consectetur adipiscing elit.". Praesent non sem urna. Pellentesque elementum "turpi'" est, "in fermentum diam auctor aliquam!". Morbi rhoncus erat ipsum, eu "tristique" """

text_split_by_quotes = text.split('"')
# get the odd-indexed elements (here's one way to do it):
text_in_quotes = text_split_by_quotes[1::2]
# split each normally (by whitespace) and flatten the list (here's one way to do it):
ans = []
for text in text_in_quotes:
    ans.extend(text.split())
# print answer
print(ans)

>>> ['ipsum', 'dolor', 'sit', 'amet,', 'consectetur', 'adipiscing', 'elit.', "turpi'", 'in', 'fermentum', 'diam', 'auctor', 'aliquam!', 'tristique'] 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python正则表达式在分组中返回没有双引号的单词

使用正则表达式从python中的文本中提取特定单词

使用python提取单词中特定符号后的所有单词的正则表达式

正则表达式从没有空格的字符串中提取每个大写单词

正则表达式可从Python中的文本中提取带有尺寸的数量

在Python中使用正则表达式从字符串中提取具有特定字符的单词列表

使用python正则表达式从字符串中提取单词

在python正则表达式中提取字符前后的两个单词

Python正则表达式从字符串中提取某些单词

Python Pandas从包含正则表达式的String的列中提取单词

如何使用正则表达式获取Python段落中的最后一个单词

从文本+ python正则表达式中提取行

python使用正则表达式提取大写单词

使用python中的多条件正则表达式提取数字直到某个段落

Python使用正则表达式提取文本文件中的段落

在 Python 中使用正则表达式将单词添加到引号中

如何使用正则表达式在python中的单词周围添加引号?

通过python正则表达式提取具有非ASCII字符的单词

在python 3.5中查找没有正则表达式或nltk的字符串中的字符和单词

如何使用正则表达式在python中的关键字列表后提取单词?

使用正则表达式提取python中两个定义的单词之间的内容

在没有正则表达式的情况下检查整个单词是否在python的文本文件中

Python:正则表达式lookbehind在单引号或双引号后得到单词

python正则表达式中的整个单词

Python 中逗号分隔单词的正则表达式

从数据帧中删除 Python 中带有正则表达式模式的单词

python中的正则表达式提取某些代码

Python句子提取器中的正则表达式

Python正则表达式提取