Regex 如何围绕某个函数调用执行查找替换
我在许多不同的文件中调用了很多到Regex 如何围绕某个函数调用执行查找替换,regex,replace,pycharm,Regex,Replace,Pycharm,我在许多不同的文件中调用了很多到os.getenv('some_var')。我想用os.environ['some_var']替换所有这些 我知道如何将os.getenv的所有实例替换为os.environ,但不知道如何将(.*)替换为[.*],而不丢失其中的文本。尝试以下正则表达式: (os\.)[^()]*\(([^()]*)\) 将每个匹配项替换为\1environ[\2] 说明: (os\)-匹配os.并在组1中捕获 [^()]*\(-匹配任何既不是(也不是)后跟( ([^()]*
os.getenv('some_var')
。我想用os.environ['some_var']
替换所有这些
我知道如何将os.getenv
的所有实例替换为os.environ
,但不知道如何将(.*)
替换为[.*]
,而不丢失其中的文本。尝试以下正则表达式:
(os\.)[^()]*\(([^()]*)\)
将每个匹配项替换为\1environ[\2]
说明:
-匹配(os\)
并在组1中捕获os.
-匹配任何既不是[^()]*\(
也不是(
后跟)
(
-匹配既不是([^()]*)
也不是(
的任何字符的0+次出现次数。此子字符串在组2中捕获)
-匹配\)
)
os.getenv\('([^']+)'\)
并将其替换为os.environ['\1']
这个正则表达式基本上有三个部分
)-这与os.getenv\('
os.getenv('
-它捕获括号中的任何文本,并将其捕获到group1中([^']+)
-这与\)
)
某些变量能否包含另一组括号?不,绝对不能。