从字符串中拉出某些位的正则表达式

时间:2014-12-29 21:48:45

标签: regex powershell

所以我正在尝试使用正则表达式我所拥有的字符串

Successfully created package 'C:\Users\mhopper\Documents\CreateNugetPackage\AjaxControlToolkit.3.5.50401.nupkg'

我正在努力制作一个正常的表达方式,以便成功地推动#34;和" C:\ Users \ mhopper \ Documents \ CreateNugetPackage \ AjaxControlToolkit.3.5.50401.nupkg"

我还没有经常使用正则表达式而且我所做的事情是不起作用的,到目前为止我所做的是

'.*(Successfully\.*\C\D+).*', '$1'

2 个答案:

答案 0 :(得分:3)

正则表达式:

^(\S*)\s.*'(.*)'$
  • #1匹配是状态
  • #2匹配是路径

https://regex101.com/r/eC7vX1/1

Powershell的:

$line = "Successfully created package 'C:\Users\mhopper\Documents\CreateNugetPackage\AjaxControlToolkit.3.5.50401.nupkg'"
$values = $line -split "^(\S*)\s.*'(.*)'$"
$status = $values[1]
$path = $values[2]
("status:{0}\npath:{1}" -f $status,$path)

答案 1 :(得分:2)

您需要更具体地说明为什么需要正则表达式。

从字符串中获取这两个值并不需要正则表达式。

$Status,$PackagePath = ($String.Trim().Split(' ',4))[0,3]