簡體   English   中英

將python前瞻斷言正則表達式轉換為有效的Golang

[英]Converting a python lookahead assertion regex to valid Golang

我有以下正則表達式在Python中效果很好(由於前瞻性斷言)。

some_list = re.findall('^(?=Name:)(.*?)(?=USB\\ Device\\ Filters:)', myinput, re.MULTILINE|re.DOTALL)

請參見下面的代碼塊中的myinput示例。

名稱:將始終是組的開始,而USB設備過濾器:將始終是組的結束。 並非所有行都具有有效的key:value,例如可以具有或為空行。

Name:            Server1 10.0.0.11
Groups:          /
Guest OS:        Ubuntu (64-bit)
\n
<none>
USB Device Filters:

Name:            Server2 10.0.0.12
Groups:          /
Guest OS:        Debian (64-bit)
\n
<none>
USB Device Filters:

誰能幫我將其轉換為有效的Golang正則表達式?

最終目標是解析myinput並獲取匹配組的一部分。

鑒於此在Python中:

^(?=Name:)(.*?)(?=USB Device Filters:)

演示

由於^(?=Name:)是零寬度的斷言,因此Name:由其后的捕獲組捕獲。

您可以使用以下方法在Golang中捕獲相同內容:

^(Name:.*?)USB Device Filters:

演示

如果您不想捕獲Name:\\s ,則可以執行以下操作:

^Name:\s*(.*?)USB Device Filters:

演示

您不需要使用兩種語言中的(?=USB\\ Device\\ Filters:)來轉義空格。 全部都設置了(?ms)標志。

暫無
暫無

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

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