将单词序列与正则表达式匹配

2024-06-09 07:38:18 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

例如,从每个索引行中,我希望得到以下结果:

指数-预期结果

0-BOV BCONTRA

1-BF副作用C

2-库宾霍斯DACE

。。。等等

请注意,inline 25所需的结果与前面带有空格的数字没有分开

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

我试过了,但没有成功

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

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

enter image description here


Tags: 字符串re列表inline数字指数字符单词
2条回答

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

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

似乎您想要的是[A-Z .]+,而不是以r'\w'为边界的“单词”(由r'\w'表示) 整数^{} maps to ^{}

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

我不知道你说的每行前面都有新行是什么意思。如果您有一个包含行的字符串,那么最好使用string.splitlines()将输入拆分成行,然后在每个相关行上进行线性正则表达式匹配(re.match,这样正则表达式只从开始匹配)

相关问题 更多 >