edt*_*edt 0 php regex unix split dos
我有一个表示目录路径的字符串.我希望拆分字符串,如果它是unix类型路径或ms-dos类型路径.
如何才能做到这一点?
例如:
<?php
$a = some_path1/some_path2/some_path3; // unix type path
$b = some_path1\some_path2\some_path3; // MS-DOS type path
$foo = preg_split("something", $a); // what regex can be used here?
// the above should work with $a OR $b
?>
Run Code Online (Sandbox Code Playgroud)
你的正则表达式会是
preg_split('_[\\\\/]_', $a);
Run Code Online (Sandbox Code Playgroud)
反斜杠为字符串转义一次,对正则表达式引擎再转义一次.
编辑:
如果你知道你有什么类型的路径(例如你知道它是当前操作系统的类型),你可以这样做:
preg_split('_' . preg_quote($pathSep, '_') . '_', $a)
Run Code Online (Sandbox Code Playgroud)
您可以根据需要使用常量DIRECTORY_SEPARATOR代替$pathSep.这将解决@Alan Storm指出的问题
| 归档时间: |
|
| 查看次数: |
1762 次 |
| 最近记录: |