Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 正则表达式将非字母替换为'-';,但请留下任何经期_Php_Regex - Fatal编程技术网

Php 正则表达式将非字母替换为'-';,但请留下任何经期

Php 正则表达式将非字母替换为'-';,但请留下任何经期,php,regex,Php,Regex,我试图从文件路径中删除所有非字母,但我需要在末尾保留扩展名 文件示例: $text=cat.jpg 我当前正在使用这个$text=preg_replace('/[^\\pL\d]+/u','-',$text) 结果:cat jpg 但这也会将任何句点转换为连字符,我四处查看并尝试了从其他帖子中找到的内容,但他们只是一起删除了句点 非常感谢您的帮助。您可以使用此基于交替和负前瞻的正则表达式进行搜索: [^\pL\pN.]+|\.(?![^.]+$) 正则表达式分解: [^\pL\pN.]+

我试图从文件路径中删除所有非字母,但我需要在末尾保留扩展名

文件示例:
$text=cat.jpg

我当前正在使用这个
$text=preg_replace('/[^\\pL\d]+/u','-',$text)
结果:
cat jpg

但这也会将任何句点转换为连字符,我四处查看并尝试了从其他帖子中找到的内容,但他们只是一起删除了句点


非常感谢您的帮助。

您可以使用此基于交替和负前瞻的正则表达式进行搜索:

[^\pL\pN.]+|\.(?![^.]+$)

正则表达式分解:

[^\pL\pN.]+  # Search 1 or more of any char that is not DOT and letter and number (unicode)
|            # OR
\.           # search for DOT
(?![^.]+$)   # negative lookahead to skip DOT that is just before file extension
在PHP代码中:

$text = preg_replace('/[^\pL\pN.]+|\.(?![^.]+$)/u', '-', $text);

《代码》中的cat.super-fluffy2.jpg.b_-ak应该是怎样的呢?@MonkeyZeus狡猾,但可能是这样的:cat-super-fluffy2-jpg.b-ake你确定吗?这与您的标题或问题正文中的描述不符,接受的答案将无法满足您的期望。@MonkeyZeus I编辑了回复,接受的答案是合适的,不理想,但有效。