Regex PowerShell正则表达式在2个字符串之间获取子字符串

Regex PowerShell正则表达式在2个字符串之间获取子字符串,regex,powershell,Regex,Powershell,我正在尝试使用powershell从字符串中获取子字符串。我想得到介于“=%7B”和“%之间的字符串 我使用正则表达式\=%7B([^%]+)\%,并且能够 “=%7BABCDEFGHIJKLM%”和“=%7bnopqrstuvxyz%” 但不是2个字符串中的值。这是怎么做到的 谢谢看起来你很接近了……我是根据你发布的内容猜的,因为你没有发布完全可以工作的代码来重现问题 在regex101.com上验证您的正则表达式后,我在ISE中运行了这个 $str="onething=%7BABCDEFGH

我正在尝试使用powershell从字符串中获取子字符串。我想得到介于“=%7B”和“%之间的字符串

我使用正则表达式
\=%7B([^%]+)\%
,并且能够

“=%7BABCDEFGHIJKLM%”
“=%7bnopqrstuvxyz%”

但不是2个字符串中的值。这是怎么做到的


谢谢

看起来你很接近了……我是根据你发布的内容猜的,因为你没有发布完全可以工作的代码来重现问题

在regex101.com上验证您的正则表达式后,我在ISE中运行了这个

$str="onething=%7BABCDEFGHIJKLM%something=%7BNOPQRSTUVWXYZ%"
$ret = [Regex]::Matches($str, "\=%7B([^%]+)\%")
$ret.Count
$ret[0].Groups[1].Value
$ret[1].Groups[1].Value
为我工作

请注意,将来,请使用正确的语法发布代码,以改进对您的问题的回答……尤其是当您的PowerShell问题毫无疑问会变得更加技术化时。

使用以下内容非常简单:


(?powersehl!=PowershellNice post!在过去几天里,我一直在研究regex lookaround。我可以推荐以下来源,让您开始使用regex:
$str="onething=%7BABCDEFGHIJKLM%something=%7BNOPQRSTUVWXYZ%"
$ret = [Regex]::Matches($str, "\=%7B([^%]+)\%")
$ret.Count
$ret[0].Groups[1].Value
$ret[1].Groups[1].Value
(?<=\=%7)[A-Z]+(?=%)
(?<=\=%7).+?(?=%)
$str="onething=%7BABCDEFGHIJKLM%something=%7BNOPQRSTUVWXYZ%"
$ret = [Regex]::Matches($str, "(?<=\=%7).+?(?=%)")
for($i = 0; $i -lt $ret.Count; $i++) {
    $ret[0].Value
}