Regex 与引号后的其他项匹配的powershell正则表达式

Regex 与引号后的其他项匹配的powershell正则表达式,regex,powershell,Regex,Powershell,在这个例子中,因为它是一个空格,所以它很好地匹配它。但是假设一个区域名称没有与其他区域匹配的空间。我只想匹配引号中的内容 'geoRegionName=“Washington”geoCityName=“Bonney Lake”'-match'(?使用子表达式[^”]+来(贪婪地)匹配除“([^”])之外的字符的非空运行(+),即所有内容都包括但不包括下一个”,无论这些字符是否包含空格: $str = 'geoRegionName="Washington" geoCityNam

在这个例子中,因为它是一个空格,所以它很好地匹配它。但是假设一个区域名称没有与其他区域匹配的空间。我只想匹配引号中的内容

'geoRegionName=“Washington”geoCityName=“Bonney Lake”'-match'(?使用子表达式
[^”]+
来(贪婪地)匹配除
[^”]
)之外的字符的非空运行(
+
),即所有内容都包括但不包括下一个
,无论这些字符是否包含空格:

$str = 'geoRegionName="Washington" geoCityName="Bonney Lake"'
if ($str -match '(?<=geoRegionName=")[^"]+') {
  $Matches[0]
}
上述两个命令都会产生(请注意,封闭的
已被删除,但很容易包含在内):

华盛顿

至于你所尝试的:


\S+
贪婪地匹配非空白字符(
\S
)的非空运行(
++
),其中包括
字符,因此
\S+.*”
在第一个空白之后的下一个
)之前一直保持匹配,直到下一个

'geoRegionName=“华盛顿“geoCityName=“Bonney Lake”'-match'(?以下是如何在引号之间进行匹配:
$string-match'(?)?
$str = 'geoRegionName="Washington" geoCityName="Bonney Lake"'
$str -replace '^geoRegionName="([^"]+).+', '$1'