Php preg_替换最后一个斜杠和目录名或文件名
文件: 我只想用\example替换\indexPhp preg_替换最后一个斜杠和目录名或文件名,php,regex,Php,Regex,文件: 我只想用\example替换\index C:\Some\Location\index 它只是太贪婪了。我不知道有任何修饰符可以解决这个问题 谢谢 echo preg\u replace('/[\\\\\\\\\\/]{1}[^\\/]*?$/','\example',$file)怎么样?如何echo preg\u replace('/[\\\\\\\\\\/]{1}[^\\\\/]*?$/','\example',$file)?将替换为[^/\],它匹配除斜杠以外的任何内容。我还将r
C:\Some\Location\index
它只是太贪婪了。我不知道有任何修饰符可以解决这个问题
谢谢 echo preg\u replace('/[\\\\\\\\\\/]{1}[^\\/]*?$/','\example',$file)怎么样代码>?如何
echo preg\u replace('/[\\\\\\\\\\/]{1}[^\\\\/]*?$/','\example',$file)代码>?将
替换为[^/\]
,它匹配除斜杠以外的任何内容。我还将regex分隔符更改为@
,因为斜杠在处理路径时不合适
echo preg_replace('/[\\\|\/]{1}.*?$/', '\example', $file);
将
替换为[^/\]
,它与斜杠以外的任何内容都匹配。我还将regex分隔符更改为@
,因为斜杠在处理路径时不合适
echo preg_replace('/[\\\|\/]{1}.*?$/', '\example', $file);
和一个无RegExp的解决方案:
和一个无RegExp的解决方案:
如果可以使用正斜杠而不是那些难看的反斜杠(是的,windows支持正斜杠),则不需要正则表达式:
如果可以使用正斜杠而不是那些难看的反斜杠(是的,windows支持正斜杠),则不需要正则表达式:
如果你坚持使用正则表达式
$str = 'C:/Some/Location/index';
echo dirname($str).'/example';
行
我建议使用
echo preg_replace('/[^\/\\]*$/', 'example', $file)
相反,它将安全地处理前向和反斜杠、根目录等。如果您坚持使用正则表达式
$str = 'C:/Some/Location/index';
echo dirname($str).'/example';
行
我建议使用
echo preg_replace('/[^\/\\]*$/', 'example', $file)
相反,它将安全地处理前斜杠和反斜杠、根目录等。Perfect。谢谢你的解释。太好了。也谢谢你的解释。好吧,我不能假设任何平台在斜杠上使用一个或另一个,除非我要替换斜杠,但这似乎是不必要的@西蒙,我认为正则表达式在这里非常合适。@Senica-执行路径操作?我会坚持我原来的观点。在任何平台上你都不需要反斜杠。向前斜杠是一条路要走。它们可以在Linux/Unix、OSX和Windows上工作,并且可能在大多数/所有外来系统上都可以工作。好吧,我不能假设任何平台使用斜杠,除非我要替换斜杠,但这似乎是不必要的@西蒙,我认为正则表达式在这里非常合适。@Senica-执行路径操作?我会坚持我原来的观点。在任何平台上你都不需要反斜杠。向前斜杠是一条路要走。它们可以在Linux/Unix、OSX和Windows上工作,并且可能可以在大多数/所有外来系统上工作。
echo dirname($file).'\example'