php - 删除除 "."以外的所有非单词字符

标签 php regex string preg-replace

删除文件名中所有非单词字符的最简单方法是什么?

显然需要扩展名之前末尾的点,因此所有符号如“-”或“*”或“?” "应该被删除,除了 "."

像这样:

$filename = preg_replace("/[^\.]\W/", "", $filename);

最佳答案

我会使用类似的东西:

$filename = preg_replace("/\W(?=.*\.[^.]*$)/", "", $filename);

正则表达式将匹配文件名中的任何非单词字符(此处的“单词字符”由类 [a-zA-Z0-9_] 定义),只要有句点扩展名。

这还将考虑可能的文件名,例如 file.name.txt 并正确返回 filename.txt(第一个点不是文件扩展名的点).

关于php - 删除除 "."以外的所有非单词字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20846575/

相关文章:

php - 使用 PHP 从数据库获取值(value)

Python 模式匹配。匹配 'c[any number of consecutive a' s, b's, or c's or b's, c's, or a's etc.]t'

java - java问题中的正则表达式,多个匹配项

c++ - 使用正则表达式从 C++ 中的一行文本中提取数据

c# - String.Replace 忽略大小写

javascript - 如何通过单击其中的按钮来删除父 iframe?

php - 使用 php 或 avconv 获取 .mov 视频旋转

php - 用于忽略可选逗号的正则表达式

c - C 中的字符串搜索和替换程序实现

string - 如何在 Rust 中将字符串转换为向量?