使用正则表达式和 Powershell 从字符串中提取 url

Extracting url from a string with regex and Powershell

我正在使用 powershell 和正则表达式。我正在将网页结果抓取到一个变量,但我似乎无法从该变量中提取生成的 url。

这是内容(实际url有所不同):

"https://api16-something-c-text.sitename.com/aweme/v2/going/?video_id=v12044gd0666c8ohtdbc77u5ov2cqqd0&

$reg = "([^&]*)&;$" 总是 returns 错误。

我一直在尝试 -matchSelect-String 使用正则表达式,但我需要指导。

这真的取决于内容的格式。

(?<=\&quot;) 在“"”后面查找 (.*?) 任意数量的 non-newline 个字符,然后在前面查找 (?=\&amp;) 即“&”。

这是一个公平的开始:

$pattern = "(?<=\&quot;)(.*?)(?=\&amp;)"
$someText = "&quot;https://api16-something-c-text.sitename.com/aweme/v2/going/?video_id=v12044gd0666c8ohtdbc77u5ov2cqqd0&amp;"
$newText = [regex]::match($someText, $pattern)
$newText.Value

Returns:

https://api16-something-c-text.sitename.com/aweme/v2/going/?video_id=v12044gd0666c8ohtdbc77u5ov2cqqd0

我建议使用 -replace 操作:

$str = '&quot;https://api16-something-c-text.sitename.com/aweme/v2/going/?video_id=v12044gd0666c8ohtdbc77u5ov2cqqd0&amp;' 

$str -replace '^&quot;(.+)&amp;$', ''