在PowerShell中使用正则表达式提取子字符串

时间:2013-06-27 14:27:39

标签: regex powershell substring

我可以如何正则表达并提取\]之间的最后一个子字符串而不是拆分字符串?

示例:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DNS Server\anyLongString]

2 个答案:

答案 0 :(得分:18)

一种方法是:

$a = "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DNS Server\anyLongString]"
$a -match '([^\\]*)]$'
$matches[1]
anyLongString

答案 1 :(得分:7)

另一种方法是使用更少的代码行:

$a = "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DNS Server\anyLongString]"
$a -Replace '^.*\\([^\\]+)]$', '$1'