我有一个文件,其中每个块由!sie 分隔
!
vserver XXXX
virtual XX.xx.XX.XX tcp 389
owner LDAP
serverfarm XXX
idle 5
persistent rebalance
inservice
!
Run Code Online (Sandbox Code Playgroud)
我想得到包含vserver信息的每个部分.我试图在python中使用正则表达式,但我在处理换行符时遇到问题
我试过这样的事情:
pattern = r"!\n vserver \S+\n "
Run Code Online (Sandbox Code Playgroud)
您需要告诉Python您正在使用多行正则表达式,并且点字符可以匹配新行:
>>> 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!'
Run Code Online (Sandbox Code Playgroud)
如果要获取vserver 的名称:
>>> 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'
Run Code Online (Sandbox Code Playgroud)