簡體   English   中英

正則表達式提取Python中的所有單詞對及其分別的3個單詞之后的單詞和3個單詞之前的單詞

[英]Regex to extract all pair of words and their respectively 3 words after and 3 words before in Python

正則表達式提取所有成對的單詞及其分別在之后的3個單詞和之前的3個單詞

這是我的正則表達式:

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

這是文本:

Quadriband - UMTS - HSDPA - HSUPA - LTE - Wi-Fi Fotocamera da 8 Megapixel - Lettore MP3 Sistema Operativo iOS8 - GPS integrato

我只得到以下結果:

Quadriband - UMTS  - HSDPA - 
HSUPA - LTE  - Wi-Fi Fotocamera 
da 8 Megapixel  - Lettore MP3 
Sistema Operativo iOS8  - GPS integrato

但我想要所有組合,尤其是- Wi-Fi Fotocamera - da 8 Megapixel

我如何編輯我的正則表達式,以捕獲空格之前的所有可能的3個單詞(也可以是0、1或2個也可以),而在空格之后可以捕獲3個單詞(也可以是0、1或2個也可以)。

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

似乎您需要每6個連續的無空格子字符串。因此,您不需要正則表達式即可在列表推導中使用itertools.islice

>>> from itertools import islice
>>> 
>>> [' '.join(islice(li,i,i+6)) for i in range(len(li))]
['Quadriband - UMTS - HSDPA -', '- UMTS - HSDPA - HSUPA', 'UMTS - HSDPA - HSUPA -', '- HSDPA - HSUPA - LTE', 'HSDPA - HSUPA - LTE -', '- HSUPA - LTE - Wi-Fi', 'HSUPA - LTE - Wi-Fi Fotocamera', '- LTE - Wi-Fi Fotocamera da', 'LTE - Wi-Fi Fotocamera da 8', '- Wi-Fi Fotocamera da 8 Megapixel', 'Wi-Fi Fotocamera da 8 Megapixel -', 'Fotocamera da 8 Megapixel - Lettore', 'da 8 Megapixel - Lettore MP3', '8 Megapixel - Lettore MP3 Sistema', 'Megapixel - Lettore MP3 Sistema Operativo', '- Lettore MP3 Sistema Operativo iOS8', 'Lettore MP3 Sistema Operativo iOS8 -', 'MP3 Sistema Operativo iOS8 - GPS', 'Sistema Operativo iOS8 - GPS integrato', 'Operativo iOS8 - GPS integrato', 'iOS8 - GPS integrato', '- GPS integrato', 'GPS integrato', 'integrato']

同樣,如果您對單詞有特殊的條件,則可以通過將特定的正則表達式傳遞給re.findall並將其用作s.splitre.findall s.split

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM