gpt4 book ai didi

Python 正则表达式不工作

转载 作者:太空宇宙 更新时间:2023-11-03 19:07:06 25 4
gpt4 key购买 nike

REGEXES = [(re.compile(r'cat'), 'cat2'),
(re.compile(r'(if)(.*)(\r?\n)(\s*)(logger.info)(.*)'), '\1\2')]

for search, replace in REGEXES:
line = search.sub(replace, line)

为什么它不起作用......

if( List != null ) {
logger.info( "List is not null" );
fieldSetContainerList.clear();
}

与 Notepad++ 正则表达式搜索替换配合使用效果良好。用法:想要删除所有 if 语句下面的 logger.info 语句。

最佳答案

您需要使用原始字符串:

       (re.compile(r'(if)(.*)(\r?\n)(\s*)(logger.info)(.*)'), r'\1\2')]
^ here

通过此修复,您的正则表达式对我有用。如果没有它,\1\2 将在解析字符串文字时进行处理,并且永远不会进入正则表达式引擎。

这是我的测试代码:

import re

line = """if( List != null ) {
logger.info( "List is not null" );
fieldSetContainerList.clear();
}
"""

REGEXES = [(re.compile(r'cat'), 'cat2'),
(re.compile(r'(if)(.*)(\r?\n)(\s*)(logger.info)(.*)'), r'\1\2')]

for search, replace in REGEXES:
line = search.sub(replace, line)
print line

运行时,会打印

if( List != null ) {
fieldSetContainerList.clear();
}

关于Python 正则表达式不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14446449/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com