Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jupyter笔记本电脑';s搜索和替换不像regex101';s javascript_Regex_Jupyter Notebook - Fatal编程技术网

Jupyter笔记本电脑';s搜索和替换不像regex101';s javascript

Jupyter笔记本电脑';s搜索和替换不像regex101';s javascript,regex,jupyter-notebook,Regex,Jupyter Notebook,我有许多logger.*()函数,我想在Jupyter笔记本中转换成简单的print()语句。我已经更改了行的开头:logger.*(。现在我需要修复尾部并将”,e更改为”%(e: print("(%s):\n" " Failed to load logger" % (e, )) logger.error("(%s):\n" " Validation Testing errors occurred. '%s'", e, report_

我有许多
logger.*()
函数,我想在Jupyter笔记本中转换成简单的
print()
语句。我已经更改了行的开头:
logger.*(
。现在我需要修复尾部并将
”,e
更改为
”%(e

print("(%s):\n"
        "    Failed to load logger" % (e, ))

logger.error("(%s):\n"
        "    Validation Testing errors occurred. '%s'",
        e, report_file)

logger.critical("(%s):\n"
        "    Failed to return Parsed Report "
        "    in debug mode.", e)

logger.critical("(%s):\n"
        "    Error loading template.", e)
使用Regex101测试我的javascript Regex,我编写了

print\("[\s\S.]*(", e)

但在Jupyter的查找和替换中,这只捕获最多
打印((%s)\n“

搜索和替换预览仅显示一行。尽管如此,regex replace可以跨多行工作。可以按照建议替换示例字符串:

print\("[\s\S]*?", e\)
当对话框显示0与替换项匹配时,替换项仍然有效:

注意:我已经修改了您的搜索模式。修改后的点应该匹配lazy,
[\s]*?
以避免匹配过多。此外,我删除了捕获组,看起来您不需要它


更新:事实证明,捕获组需要反转以替换有问题的字符串(xtian对此表示敬意):

搜索:

(print\("[\s\S.]*)", e
替换:

$1 " % (e,

我正在用print语句替换记录器的开始和结束。开始很简单,但结束有常见语法并返回错误匹配。我需要更改匹配结束,条件是它是print语句。奇怪的是,关于匹配计数,您是对的。尽管显示了0个结果,但搜索确实匹配并正确,但只有一次匹配成功删除了文件的其余部分。哈哈。所以Jupyter在多行匹配时失败,并且在匹配计数为0时爆炸。奇怪!@xtian我可以进行多行替换。您是否按照建议使用了惰性匹配运算符?如果需要帮助,请显示更多示例输入。哦!如果您不使用惰性,则匹配将跳到最后。使用惰性,您得到了多个匹配项。出于某种原因,我认为lazy只找到了第一个匹配项。我明白了。现在使用lazy修复程序,我看到捕获组需要反向,搜索:
(print\(“[\s\s.]*)”,e
;替换:
$1%(e,
。如果你更新你的答案,我会把它标记为正确的——你还有其他一切。一,我没有得到懒惰的力量,两个0的结果不是零。