簡體   English   中英

Python正則表達式從字符串中的錨點提取上一組/下一組

[英]Python regex extract previous/next group from anchor point in string

給定一個包含四個值的字符串:

1) Vehicle model        <- any number of alpha-numeric words
2) Engine description   <- one word before the next value:
3) Power output         <- \d+KW
4) Optional keywords    <- any number of alpha-numeric words

For example:
1-SERIE 118I 105KW EFF.DYN. BUSINESS LINE
MINI CLUBMAN 1.6T 128KW COOPER S
TWINGO 1.2 55KW

如何使用 re 將這些提取到 Python 變量中?

我覺得最簡單的方法是先找到power output (一個錨點),然后匹配前面的詞來找到engine description ,然后匹配之前的一切來檢索model 還匹配電源輸出后的所有內容以查找可選關鍵字

我覺得我需要用 (?<= ..) 做點什么,但我無法讓它工作..

從 Matt G. 略微修改(添加命名組並匹配所有可選關鍵字):

^(?P<model>([\S\s]+?))(?= \S+(?= \d+KW)) (?P<engine>(\S+))(?=(?= \d+KW)) (?P<kw>(\d+))KW(?P<keywords>(?<=KW)\s?(.*))

試試正則表達式: ^([\\S\\s]+?)(?= \\S+(?= \\d+KW)) (\\S+)(?=(?= \\d+KW)) (\\d+)KW(?: ([^\\s]+))*

演示

暫無
暫無

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

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