Powershell - 正则表达式

Powershell - Regular Expression

我正在尝试从存在于两个字符串之间的文件中检索一个字符串,我正在为其使用下面的正则表达式...它有效!

$Content = Get-Content $File
$Regex = [regex] "(?is)(?<=\b$String\b).*?(?=\b$String\b)"
$Matches = $Regex.Matches($Content)

但是我有一个问题。我要查找的实际字符串是由用户设置的,大小不一,从 1 个到 24 个字符不等。如果它是最大值,它不再由白色 space 分隔 '$String',因此成为该字符串的一部分,所以我认为这是无法找到它的问题。现在请耐心等待,我将解释我正在寻找的格式...它是...

$Name[Ten White Spaces]$StartOfStringImLookingFor[If string reaches 24 characters then 'no' white space]$Name

因此,如果问题是正则表达式在 $StartOfStringImLookingFor 达到 $Name 时无法执行其功能,那么理想的情况是...

找到 $Name 和 return 接下来的 34 个字符,但这可能吗?我不知道该怎么做,搜索也没有 return 任何东西。

查找 $Name 和 return 接下来的 34 个字符:

$regex = "$([regex]::Escape($Name))(.{34})"
[regex]::Matches($Content,$regex) |
foreach {$_.groups[1].value}