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