Python使用正则表达式提取特定单词列表前面的3个单词和后面的3个单词

2024-09-29 23:31:15 发布

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

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

Nokia Lumia 930 Smartphone, Display 5 pollici, Fotocamera 20 MP, 2GB RAM, Processore Quad-Core 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

我需要的单词列表是:

  • 显示
  • 前房角
  • 随机存取存储器
  • 加工
  • 备忘录

Tags: core列表windowsdisplaymp单词ramquad
2条回答
((?:[\S,]+\s+){0,3})ram,?\s+((?:[\S,]+\s*){0,3})

                       ^^

只需添加一个,。请参阅演示。在

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

你终于可以用这个了

^{pr2}$

regex不起作用,因为\s+至少需要1个空格,但RAM和{}之间没有空格。要么使用*量词,要么删除它并使用``

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

demo

我添加了\b(单词边界),以确保我们匹配RAM,而不是{}。在

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

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

相关问题 更多 >

    热门问题