RegEx用于根据结束路径从字符串中提取整个路径

时间:2014-09-08 10:04:32

标签: php regex

我正在尝试编写Regex,它可以从以下路径环境中提取指定文件夹的路径。例如,我想获得\ php结束的所有路径。

Path=E:\Sencha\bin\Sencha\Cmd\4.0.2.67;c:\Program Files (x86)\Intel\iCLS Client\;c:\Program Files\Intel\iCLS Client\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Windows Live\Shared;E:\nodejs\;C:\Program Files(x86)\Git\cmd;C:\Program Files\Microsoft\Web Platform Installer\;E:\xampp\php;C:\ProgramData\ComposerSetup\bin;C:\Ruby200-x64\bin;C:\Users\Asif\AppData\Roaming\npm;C:\Program Files\Java\jdk1.7.0_51\bin;E:\Android\ant\bin;E:\Android\android-sdk\tools;E:\Android\android-sdk\platform-tools;C:\Program Files\Mercurial;e:\xampp\php

为此我按照RegEx编写。

/.\:[\w\W]+\\php/

但它返回了整个路径。预期的结果应该如下所示,因为有两个以php结尾的条目。

E:\xampp\php
e:\xampp\php

我使用PHP作为我的编程语言。

3 个答案:

答案 0 :(得分:1)

 ([^;]*?php)

使用此功能,请参阅演示

http://regex101.com/r/aM3lT9/2

答案 1 :(得分:1)

您可以使用:

preg_match_all('/(;|Path=)([^;]*php)/', $string, $m);
var_dump($m[2]);

输出:

array(2) {
  [0]=>
  string(12) "E:\xampp\php"
  [1]=>
  string(12) "e:\xampp\php"
}

答案 2 :(得分:0)

尝试一下:

[^;=]+\\php

Regular expression visualization

Debuggex Demo