繁体   English   中英

Python提取前3个单词和3个单词后带有正则表达式的特定单词列表

[英]Python extract 3 words before and 3 words after a specific list of words with a regex

我需要使用python来提取3个单词之前和3个单词后面的特定单词

诺基亚Lumia 930智能手机,显示器5 pollici,Fotocamera 20 MP,2GB RAM,处理器四核2.2GHz,Memoria 32GB,Windows Phone 8.1,Bianco [Germania]

目前我正在使用这个正则表达式而没有成功

((?:[\S,]+\s+){0,3})ram\s+((?:[\S,]+\s*){0,3})

https://regex101.com/r/yN6iI0/1

我需要的单词列表是:

  • 显示
  • Fotocamera
  • 内存
  • Processore
  • MEMORIA

你正则表达式没有工作,因为\\s+至少需要1点的空白,但之间的RAM,是没有的。 要么使用*量词,要么删除它并使用``

(?i)((?:\S+\s+){0,3})\bRAM\b\s*((?:\S+\s+){0,3})

演示

我添加\\b (字边界)以确保我们匹配RAM ,而不是RAMBUS

注意re.I修饰符(或在模式的开头使用内联版本(?i) )。

其他模式可以以类似的方式形成,只需用列表中的单词替换RAM

((?:[\S,]+\s+){0,3})ram,?\s+((?:[\S,]+\s*){0,3})

                       ^^

只需添加一个,参见演示。

https://regex101.com/r/yN6iI0/4

你终于可以用了,

((?:[\S,]+\s+){0,3})(?:ram|Display|Fotocamera|RAM|Processore|Memoria),?\s+((?:[\S,]+\s*){0,3})

暂无
暂无

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

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