[英]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.