从任意字符串中提取文件路径

时间:2016-11-23 16:30:17

标签: c# .net registry startup boot

我一直在尝试列出启动时启动的程序的所有文件路径。我遇到了以下数据

Rundll32.exe shell32.dll, ShellExec_RunDLL C:\Users\Name\AppData\Roaming\Oracle\JavaUpdate.exe

"C:\Program Files (x86)\Steam\steam.exe" -silent

此数据来自注册表\ HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Run,使用以下代码获取

foreach(var valueName in registryKey.GetValueNames()){
  bootItems.Add(registryKey.GetValue(valueName);
}

哪种解决方案可以从两者中提取路径? 我试图使用以下正则表达式和变体而没有任何运气。

"^\"([^\"]*)\".*$"

1 个答案:

答案 0 :(得分:2)

如果他们只是看起来那样,那么这个正则表达式将完成这项工作:

\b.:\\.+?.exe\b

它匹配任何字符后跟冒号和斜杠,后跟任何以.exe结尾的文本,其中开头/结尾是单词分隔符或行的开头/结尾。