我在许多不同的文件的很多电话为os.getenv('some_var')
。我想用os.environ['some_var']
替换所有这些。
我知道如何替换的所有实例os.getenv
与os.environ
而不是如何更换(.*)
与[.*]
而不丧失内的文本。
答案 0 :(得分:1)
尝试此正则表达式:
@(...)
将每个匹配项替换为-join
说明:
(Get-Content D:\ServerName.txt) -join ','
-匹配(os\.)[^()]*\(([^()]*)\)
并在组1中捕获\1environ[\2]
-匹配0+次出现的(os\.)
既不是os.
也不是[^()]*\(
的任何字符(
-匹配0+次出现的既不是)
也不是(
的字符。此子字符串在第2组中捕获([^()]*)
-匹配(
答案 1 :(得分:1)
您可以使用此正则表达式匹配文本并在括号内捕获文本,
os.getenv\('([^']+)'\)
并用os.environ['\1']
此正则表达式基本上分为三个部分,
os.getenv\('
-从字面上匹配os.getenv('
([^']+)
-捕获括号中的任何文本并将其捕获到group1中'\)
-从字面上匹配')