次の正規表現はPythonでうまく動作します(先読みアサーションのため)。Python先読みアサーション正規表現を有効なGolangに変換する
some_list = re.findall('^(?=Name:)(.*?)(?=USB\ Device\ Filters:)', myinput, re.MULTILINE|re.DOTALL)
以下のコードブロックにmyinput
の例を参照してください。
名:は常にグループの最初とのUSBデバイスフィルタになります:は常にグループの終わりになるでしょう。すべての行が有効なキーを持っているわけではありません。たとえば、値は空白行を持つことができます。
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でこれを考える
ありがとう@dawg。これは正しい軌道に乗った。私は最後の夜を空白にして、旗を忘れていたに違いない。これは最後に私のために働いた... '' 'regexp.MustCompile(' '?ms)^(名前:。*?)USBデバイスフィルタ:' '' ' – mfridman