使用正则表达式和 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 错误。
我一直在尝试 -match
和 Select-String
使用正则表达式,但我需要指导。
这真的取决于内容的格式。
(?<=\")
在“"”后面查找 (.*?)
任意数量的 non-newline 个字符,然后在前面查找 (?=\&)
即“&”。
这是一个公平的开始:
$pattern = "(?<=\")(.*?)(?=\&)"
$someText = ""https://api16-something-c-text.sitename.com/aweme/v2/going/?video_id=v12044gd0666c8ohtdbc77u5ov2cqqd0&"
$newText = [regex]::match($someText, $pattern)
$newText.Value
Returns:
https://api16-something-c-text.sitename.com/aweme/v2/going/?video_id=v12044gd0666c8ohtdbc77u5ov2cqqd0
我建议使用 -replace
操作:
$str = '"https://api16-something-c-text.sitename.com/aweme/v2/going/?video_id=v12044gd0666c8ohtdbc77u5ov2cqqd0&'
$str -replace '^"(.+)&$', ''
我正在使用 powershell 和正则表达式。我正在将网页结果抓取到一个变量,但我似乎无法从该变量中提取生成的 url。
这是内容(实际url有所不同):
"https://api16-something-c-text.sitename.com/aweme/v2/going/?video_id=v12044gd0666c8ohtdbc77u5ov2cqqd0&
$reg = "([^&]*)&;$"
总是 returns 错误。
我一直在尝试 -match
和 Select-String
使用正则表达式,但我需要指导。
这真的取决于内容的格式。
(?<=\")
在“"”后面查找 (.*?)
任意数量的 non-newline 个字符,然后在前面查找 (?=\&)
即“&”。
这是一个公平的开始:
$pattern = "(?<=\")(.*?)(?=\&)"
$someText = ""https://api16-something-c-text.sitename.com/aweme/v2/going/?video_id=v12044gd0666c8ohtdbc77u5ov2cqqd0&"
$newText = [regex]::match($someText, $pattern)
$newText.Value
Returns:
https://api16-something-c-text.sitename.com/aweme/v2/going/?video_id=v12044gd0666c8ohtdbc77u5ov2cqqd0
我建议使用 -replace
操作:
$str = '"https://api16-something-c-text.sitename.com/aweme/v2/going/?video_id=v12044gd0666c8ohtdbc77u5ov2cqqd0&'
$str -replace '^"(.+)&$', ''