首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Regex:删除PowerShell行尾括号中的数字

Regex:删除PowerShell行尾括号中的数字
EN

Stack Overflow用户
提问于 2021-05-06 15:41:38
回答 1查看 87关注 0票数 2

当我运行我的代码:

代码语言:javascript
复制
$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)

如何删除行尾的最后一个括号?

  • 工作站: Windows 10版本(3775)改为工作站: Windows 10版本
  • 工作站:不支持的Win 10版本(1809年及更早版本) (3)变为工作站:无支持的Win 10版本(1809年及更早版本)

非常感谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-06 16:47:10

您可以使用

代码语言:javascript
复制
$_.innerText -replace '\s*\([^()]*\)$'

\s*\([^()]*\)$正则表达式匹配零或多个空白空间,然后是(,然后是除()以外的任何零或多个字符,然后是字符串末尾的)

请注意,它不会替换尾随空格的(...)字符串。也要考虑这些,您将需要

代码语言:javascript
复制
$_.innerText -replace '\s*\([^()]*\)\s*$'

\s*$匹配字符串末尾的零个或多个空格字符。

regex演示

如果需要删除字符串末尾的嵌套的、平衡的括号,则可以使用

代码语言:javascript
复制
$_.innerText -replace '\s*\((?>[^()]+|(?<x>)\(|(?<-x>)\))*(?(x)(?!))\)\s*$'

这个regex演示(?>[^()]+|(?<x>)\(|(?<-x>)\))*(?(x)(?!))部件匹配平衡的圆括号。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67421527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档