我正在尝试在以下字符串中搜索{json code}
我正在使用PowerShell,但似乎无法破解它。有人可以帮忙吗?
我尝试了以下选项,并且不太了解正则表达式
$text1 = "<script>(function(r,t){var a={json code};if(...)remaining js code}</script>";
选项1
$jsonvalue = $text1 -Match 'a={<content>}';
$jsonvalue;
执行后我得到假
选项2
$jsonvalue = $text1 -match "a=(.*)";
$jsonvalue;
执行后我得到了真的
选项3
$jsonvalue = $text1 -match "a=(?<content>.)*;if("
$jsonvalue;
执行后,我得到以下错误
parsing "a=(?<content>.)*;if(" - Not enough )'s.
RegEx.ps1:4 char:1
+ $jsonvalue = $text1 -match "a=(?<content>.)*;if("
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OperationStopped: (:) [], ArgumentException
+ FullyQualifiedErrorId : System.ArgumentException
答案 0 :(得分:1)
我觉得这只是您实际数据的表示。没有实际数据,这里是实际答案的表示:
$t = '(function(r,t){var a={json code};if(...)remaining js code}'
$t -match 'a={(.+)};'
$code = $matches[1]
关于正则表达式的一些信息。它会查找a={
然后匹配任何字符,直到找到};
。它将这些保存为子表达式,可以通过$ matches数组访问Powershell中的子表达式。