我有以下regex,它在Python中很好地工作(由于前瞻性断言)。在
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中的这一点:
Demo
由于
^(?=Name:)
是一个零宽度断言,Name:
由后面的捕获组捕获。在你可以用这个在果朗捕捉到同样的场景:
^{pr2}$Demo
如果您不想捕获
Name:\s
,可以执行以下操作:Demo
在任何一种语言中,都不需要用
(?=USB\ Device\ Filters:)
来转义空格。所有这些都设置了(?ms)
标志。在相关问题 更多 >
编程相关推荐