【发布时间】:2020-03-18 11:04:27
【问题描述】:
text = "This is a TEXT CONTAINING UPPER CASE WORDS and lower case words. This is a SECOND SENTENCE."
pattern = '[A-Z]+[A-Z]+[A-Z]*[\s]+'
re.findall(pattern, text) 给出输出 -->
['TEXT ', 'CONTAINING ', 'UPPER ', 'CASE ', 'WORDS ', 'SECOND ', 'SENTENCE ']
但是,我想要这样的输出 -->
['TEXT CONTAINING UPPER CASE WORDS', 'SECOND SENTENCE']
【问题讨论】:
-
如果你确定一个句子是一系列单词然后一个句号,只需拆分原始文本 .split(".") ,然后将列表的每个元素放入 re.findall跨度>
-
如果你有这样的句子怎么办:
This is YOUR FIRST sentence WITH UPPERCASE words. This IS A second.?那仍然是两个元素吗?还是要将第一句的元素分成两个元素? -
@JvdV 预期输出将是 ['YOUR FIRST', 'WITH UPPERCASE', 'IS A']
-
@tomgalpin 我认为性能会受到打击。
-
[A-Z]+[A-Z]+[A-Z]*最好写成[A-Z]+和[\s]+-->\s+