[英]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.