在PowerShell中获取括号内的字符串的值

huangapple go评论64阅读模式
英文:

Get the value of a string which is inside () in PowerShell

问题

I have content

build.setDisplayName(revisionNumber)

需要读取文件内容并获取括号内的值。我尝试了以下方法,但没有成功:

Select-String -Path "$PSScriptRoot/text.txt" -Pattern '(.+?)' | ForEach-Object { $_.Matches.Groups[1].Value }

注意: 假设我们不知道括号内的具体字符串。期望的输出是 revisionNumber

英文:

In a text file I have content

build.setDisplayName(revisionNumber)

I need to read the content of a file and get the value which is inside ().

I have tried the below but no use

Select-String -Path "$PSScriptRoot/text.txt" -Pattern '(.*)?'

Select-String -Path "$PSScriptRoot/text.txt" -Pattern "(?:)".Matches.Value

Note: Assume we don't know what is the string inside ().
My expected output is revisionNumber

答案1

得分: 1

在正则表达式中,() 是特殊字符,所以如果你想匹配字面的括号,必须对它们进行转义。

(Select-String -Path "$PSScriptRoot/text.txt" -Pattern '\(.*\)').Matches.Value

如果你想排除括号,可以使用以下方法:

(Select-String -Path "$PSScriptRoot/text.txt" -Pattern '\((.*)\)').Matches.Groups[1].Value
英文:

In regex ( and ) are special characters so you must escape them if you want to match literal parentheses

(Select-String -Path "$PSScriptRoot/text.txt" -Pattern '\(.*\)').Matches.Value

If you want to exclude the parentheses then use this

(Select-String  -Path "$PSScriptRoot/text.txt" -Pattern '\((.*)\)').Matches.Groups[1].Value

huangapple
  • 本文由 发表于 2023年7月18日 14:07:52
  • 转载请务必保留本文链接:https://go.coder-hub.com/76709919.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定