簡體   English   中英

Python 多行字符串查找

[英]Python Multiline String Find

我有一個配置了 VPN 隧道的 Cisco ASA。 我通過 API 調用 CLI 命令,它返回這個多行字符串:

\nSession Type: LAN-to-LAN\n\nConnection   : 192.168.1.10\nIndex        : 11701                  IP Addr      : 192.168.1.10\nProtocol     : IKEv2 IPsecOverNatT\nEncryption   : IKEv2: (1)AES256  IPsecOverNatT: (1)AES256\nHashing      : IKEv2: (1)SHA256  IPsecOverNatT: (1)SHA256\nBytes Tx     : 0                      Bytes Rx     : 0\nLogin Time   : 23:14:43 EST Fri Dec 3 2021\nDuration     : 0h:11m:50s\n\n

我不知道如何只得到“Bytes Rx”加上它旁邊的數字。 我試過這樣搜索它,但它返回“Bytes Tx”:

import re
regex_parse = re.compile(r'[a-zA-Z]+\s[a-zA-Z][a-zA-Z]\s+:\s[0-9]+')

multilinestring = webhook_api_call()
for item in multilinestring:
    a = regex_parse.search(item)
print(a.group(0))

Output:

Bytes Tx     : 0

我只想得到 Bytes Rx 和它旁邊的數字

看起來您正在嘗試從 Cisco ASA 解析sh vpn-sessiondb l2l的結果。 output 非常標准,所以我會跳過正則表達式並執行以下操作:

multilinestring = webhook_api_call()
lines = multilinestring.split("\n")
for l in lines:
    if l.find("Bytes Tx") != -1:
        print("Bytes Rx" + l.partition("Bytes Rx")[2])

Output:

Bytes Rx      : 0

祝你的代碼好運!

暫無
暫無

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

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