我有一个字符串列表,我只想从中提取项目名称,如果有的话,带空格。字符串保留在 named 列中0,索引仅供参考。例如,从每个索引行我想要以下结果:索引 - 预期结果0 - BOV BCONTRA1 - BF 假释 C2 - 鲮鱼块... 等等。请注意,内联 25 所需结果未与前面的数字用空格分隔.索引行 30 中的单词行之间可以有一个点。我试过re.findall(r"\n\d{1,2} \d+(\b\w+\b)")没有成功。也re.findall(r"\n\d{1,2} \d+( ?\w+)")只给我第一个词,我想要所有的词,而不仅仅是第一个。这些行以一个\n未打印在列表中的字符开头。
2 回答
拉风的咖菲猫
TA贡献1995条经验 获得超2个赞
所以基本上你需要文本中的所有大写字符串。试试这个表达式,它会得到所有带或不带空格的文本
re.findall('[A-Z]+[ A-Z]*', text)
ABOUTYOU
TA贡献1812条经验 获得超5个赞
看起来你想要[A-Z .]+
,而不是“单词”(由 表示r'\w'
),由整数包围。\w
映射到 [a-zA-Z0-9_]
.
这是正则表达式字符串:r'\d+ \d+([A-Z .]+)\d+'
。
我不知道你的意思是每行之前有一个换行符。如果您有一个包含行的字符串,最好将输入拆分为行string.splitlines()
,然后在每个相关行上进行线性正则表达式匹配(re.match
因此正则表达式仅从头开始匹配)。
添加回答
举报
0/150
提交
取消