我已经从这个字符串形式的网站中提取了一个URL:
@{href=http://download.company.net/file.exe}[0]
我无法弄清楚模式如何从中获取此部分:http://download.company.net/file.exe
因此我可以将其用作下载文件的URL。
从我的观点来看,逻辑是,我需要首先匹配" http"作为字符串的开头,中间的通配符然后匹配"}",但不包括在最终输出中。所以IDK ...... [http]*\}
(我知道这"语法"我的完全错了,但你明白了)
原因我不想包含" exe" to pattern,是文件扩展名是" msi"我希望它更具普遍性。另外一些优秀而全面的PS正则表达式文章会对我有很大的帮助(缺乏经验) - 我真的没有找到任何"新手友好"或者足够全面地理解这个主题。
答案 0 :(得分:1)
您可以使用[regex]::match
或-replace
。
在以下示例中,我捕获href=
之后的所有内容,它不是起始大括号}
:
'@{href=http://download.company.net/file.exe}[0]' -replace '@{href=([^}]+).*', '$1'
<强>输出:强>
http://download.company.net/file.exe
答案 1 :(得分:1)
我使用-cmatch
或-imatch
作为
if ($content -imatch '(?<=href=).*(?=})') {
$result = $matches[0]
} else {
$result = ''
}
如果是测试数据,它将返回
http://download.company.net/file.exe