簡體   English   中英

Python檢查是否存在行(兩個關鍵字)而忽略了之間的空白

[英]Python check if line (two keywords) exists ignoring white spaces between

我的示例文件具有以下結構:

Library      Collections
Library      XML    use_lxml=True
Library      ute_wtssim
Library      libraries.ta_infomodel
Library      ute_tshark
Library      PDMLChecker.py
Library    libraries.ta_ue_configuration
Library      libraries.ta_tshark
Library    libraries.ta_file_system
Resource     environment_setup.robot
Variables    ../tshark_filters.py
Variables    ../global_variables.py
Variables    tracing_tshark_filters.py

我想在文件行中找到: Library libraries.ta_infomodel忽略空格(列寬,這不是恆定的)。

你能給我建議嗎?

編輯:我想檢查是否存在行...行,其中包含正好兩個關鍵字,忽略之間的空白。

只需使用\\s* \\s代表空格。 *表示任意數量(包括零):

import re
s = '''Library      Collections
Library      XML    use_lxml=True
Library      ute_wtssim
Library      libraries.ta_infomodel
Library      ute_tshark
Library      PDMLChecker.py
Library      resources.DevWro1.pdml_validation.PdmlValidation
Library    libraries.ta_ue_configuration
Library      libraries.ta_tshark
Library    libraries.ta_file_system
Resource     environment_setup.robot
Variables    ../tshark_filters.py
Variables    ../global_variables.py
Variables    tracing_tshark_filters.py'''

matches = re.findall('Library\s*libraries\.ta_infomodel', s)

for match in matches:
    print(match)

嘗試一下:

content = """
Library      Collections
Library      XML    use_lxml=True
Library      ute_wtssim
Library      libraries.ta_infomodel
Library      ute_tshark
Library      PDMLChecker.py
Library      resources.DevWro1.pdml_validation.PdmlValidation
Library    libraries.ta_ue_configuration
Library      libraries.ta_tshark
Library    libraries.ta_file_system
Resource     environment_setup.robot
Variables    ../tshark_filters.py
Variables    ../global_variables.py
Variables    tracing_tshark_filters.py
"""

import re
regex = re.compile(r'Library\s+libraries\.ta_infomodel')
line = regex.search(content)

一些解釋。 為了通過正則表達式查找一行,您應該對許多re.findall使用re.search

\\s+ -多個空格。

\\. -點。 使用必須添加斜杠,因為僅點表示任何字符。

也可以使用列表理解

import re
lines = open(fname, 'r').readlines()
found = [s for s in lines if re.match(".* Library\s+libraries\.ta_infomodel.*", s)]

暫無
暫無

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

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