Python 将单词序列与正则表达式匹配
我有一个字符串列表,我只想从中提取项目名称,如果有空格的话 字符串保留在名为Python 将单词序列与正则表达式匹配,python,regex,Python,Regex,我有一个字符串列表,我只想从中提取项目名称,如果有空格的话 字符串保留在名为0的列中,索引仅供参考 例如,从每个索引行中,我希望得到以下结果: 指数-预期结果 0-BOV BCONTRA 1-BF副作用C 2-库宾霍斯DACE 。。。等等 请注意,inline 25所需的结果与前面带有空格的数字没有分开 索引行30中的单词行之间可能有一个点 我尝试了re.findall(r“\n\d{1,2}\d+(\b\w+\b)”),但没有成功 另外re.findall(r“\n\d{1,2}\d+(?\w
0
的列中,索引仅供参考
例如,从每个索引行中,我希望得到以下结果:
指数-预期结果
0-BOV BCONTRA
1-BF副作用C
2-库宾霍斯DACE
。。。等等
请注意,inline 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)
似乎您想要的是
[A-Z.]+
,而不是“单词”(由r'\w'
表示),以
整数
这就是正则表达式字符串:r'\d+\d+([A-Z.]+)\d+'
我不知道你说的每行前面都有新行是什么意思。如果您有一个包含行的字符串,最好使用
string.splitlines()
将输入拆分为行,然后在每个相关行上进行线性正则表达式匹配(re.match
,因此正则表达式只从开始匹配)。请提供文本输入示例,而不是文本图像。