当我运行我的代码:
$SearchClass = "allreportstd"
$URI = "https://MySite/Default.aspx"
$WebRequest = Invoke-Webrequest -URI $URI -UseDefaultCredentials
$WebRequest.ParsedHtml.getElementsByClassName($SearchClass) | % {Write-Host $_.innerText} 这将产生以下输出:
工作站:不支持Win 10版(1803年) (0)
工作站:不支持Win 10版(1809年及更早版本) (3)
工作站:不支持Win 10版(1903年) (7)
工作站:不支持Win 2000 (0)
工作站:不支持的Win XP (1)
工作站: Windows 10版本(3775)
如何删除行尾的最后一个括号?
非常感谢你的帮助。
发布于 2021-05-06 16:47:10
您可以使用
$_.innerText -replace '\s*\([^()]*\)$'\s*\([^()]*\)$正则表达式匹配零或多个空白空间,然后是(,然后是除(和)以外的任何零或多个字符,然后是字符串末尾的)。
请注意,它不会替换尾随空格的(...)字符串。也要考虑这些,您将需要
$_.innerText -replace '\s*\([^()]*\)\s*$'\s*$匹配字符串末尾的零个或多个空格字符。
见regex演示。
如果需要删除字符串末尾的嵌套的、平衡的括号,则可以使用
$_.innerText -replace '\s*\((?>[^()]+|(?<x>)\(|(?<-x>)\))*(?(x)(?!))\)\s*$'见这个regex演示。(?>[^()]+|(?<x>)\(|(?<-x>)\))*(?(x)(?!))部件匹配平衡的圆括号。
https://stackoverflow.com/questions/67421527
复制相似问题