长字符串包含以下类型的链接:http://<something>/yyy<one字符&gt; .jpg示例:http://aaa/bb/yyy1.jpg http://c/d/e/f/g/h/yyyz.jpg
我们称之为相关链接。该字符串可以包含零个,一个或多个此类相关链接。该字符串还可以包含其他不相关的链接。
目标是选择字符串中的第一个相关链接。
我可以通过一个技巧来做到这一点,但这可以通过一个正则表达式和一个匹配来完成吗?
P.S。这是我目前使用的技巧:
$regex='(^.*)(http://.*yyy..JPG)'
$TMP=$S
$firstmatch=''
while ($TMP -match $regex)
{
$TMP=$Matches[1]
$firstmatch=$Matches[2]
}
$link=$firstmatch
答案 0 :(得分:1)
你可以使正则表达式非贪婪。这样它只匹配最小值。
' http://aaa/zzz.jpg http://aaa/zzz.jpg http://bbb.yyy1.jpg' -match '\s(http://[\S]*?yyy.\.JPG)'
$Matches[1]
结果:
True
http://bbb.yyy1.jpg