我有一个文件,其中每个 block 都由 ! 分隔。即
!
vserver XXXX
virtual XX.xx.XX.XX tcp 389
owner LDAP
serverfarm XXX
idle 5
persistent rebalance
inservice
!
我想获取包含虚拟服务器信息的每个部分。我正在尝试在 python 中使用正则表达式,但我在处理换行符时遇到了问题
我试过这样的:
pattern = r"!\n vserver \S+\n "
请您参考如下方法:
你需要告诉 Python 你正在使用 multi-line正则表达式和 dot characters can match new-lines :
>>> m = re.search('^!.*^!', text, re.MULTILINE | re.DOTALL)
>>> m.group(0)
'!\n vserver XXXX\n virtual XX.xx.XX.XX tcp 389\n owner LDAP\n serverfarm XXX\n idle 5\n persistent rebalance\n inservice\n!'
如果你想获取虚拟服务器的名称:
>>> m = re.search('^!.*vserver\s+(\w+).*^!', text, re.MULTILINE | re.DOTALL)
>>> m.group(0)
'!\n vserver XXXX\n virtual XX.xx.XX.XX tcp 389\n owner LDAP\n serverfarm XXX\n idle 5\n persistent rebalance\n inservice\n!'
>>> m.group(1)
'XXXX'
