为了账号安全,请及时绑定邮箱和手机立即绑定

用正则表达式匹配单词序列

用正则表达式匹配单词序列

开满天机 2023-04-18 17:34:14
我有一个字符串列表,我只想从中提取项目名称,如果有的话,带空格。字符串保留在 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)


查看完整回答
反对 回复 2023-04-18
?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

看起来你想要[A-Z .]+,而不是“单词”(由 表示r'\w'),由整数包围。\w映射到 [a-zA-Z0-9_].

这是正则表达式字符串:r'\d+ \d+([A-Z .]+)\d+'

我不知道你的意思是每行之前有一个换行符。如果您有一个包含行的字符串,最好将输入拆分为行string.splitlines(),然后在每个相关行上进行线性正则表达式匹配(re.match因此正则表达式仅从头开始匹配)。


查看完整回答
反对 回复 2023-04-18
  • 2 回答
  • 0 关注
  • 115 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信