2024-04-26 19:03:49 发布
网友
如何修改以下代码行(读取config_file中的参数名称):
config_file
re.findall('Parameter.*', config_file)
以便忽略左侧包含注释符号(%)的行?i、 e.在下面的例子中
%
Parameter: A %Parameter: B % Parameter: C Parameter: D %the best parameter
只有A和D匹配?你知道吗
您可以在findall中使用regex交替和捕获组:
findall
>>> test_str = ("Parameter: A\n" ... "%Parameter: B\n" ... " % Parameter: C\n" ... " Parameter: D %the best parameter") >>> >>> print filter(None, re.findall(r'%\s*Parameter|(Parameter.*)', test_str)) ['Parameter: A', 'Parameter: D %the best parameter']
要放弃的匹配项应该出现在替换中最后一个捕获组匹配项之前。你知道吗
RegEx Demo
试试这个正则表达式:
(?:(?<=^)|(?<=\n))\s*Parameter.*
Click for Demo
说明:
(?:(?<=^)|(?<=\n))
\n
\s*
Parameter.*
Parameter
您可以在
findall
中使用regex交替和捕获组:要放弃的匹配项应该出现在替换中最后一个捕获组匹配项之前。你知道吗
RegEx Demo
试试这个正则表达式:
(?:(?<=^)|(?<=\n))\s*Parameter.*
Click for Demo
说明:
(?:(?<=^)|(?<=\n))
-查找前面有\n
或字符串开头的位置\s*
-匹配0+个空格Parameter.*
-匹配Parameter
,后跟0+个字符(换行符除外)相关问题 更多 >
编程相关推荐