繁体   English   中英

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

[英]Match sequence of words with regex

我有一个字符串列表,我只想从中提取项目名称,如果有空格的话。

字符串保留在名为0的列中,索引仅供参考。

例如,从每个索引行我想要以下结果:

指数 - 预期结果

0 - BOV BCONTRA

1 - BF PARAROLE C

2 - 立方鲮鱼

... 等等。

请注意,内联 25 所需的结果没有与前面的数字用空格分隔

可以有一个点. 在索引第 30 行的单词行之间。

我试过re.findall(r"\n\d{1,2} \d+(\b\w+\b)")没有成功。

另外re.findall(r"\n\d{1,2} \d+(?\w+)")只给我带来第一个单词,我想要所有单词,而不仅仅是第一个单词。

这些行以未在列表中打印的\n字符开头。

在此处输入图像描述

所以基本上你需要文本上的所有大写字符串。 试试这个表达式,它会得到所有带或不带空格的文本

re.findall('[A-Z]+[ A-Z]*', text)

看来您想要[AZ.]+ ,而不是“单词”(由r'\w'表示),以整数为边界。 \w映射到[a-zA-Z0-9_]

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM