php - php regex 从字符串中删除方括号和括号
问题描述
我正在使用它来清理文件名,但它仍然允许方括号和括号通过,这些是“{}()[]”。我正在尝试让正则表达式删除这些。
$clean = preg_replace("([^\w\s\d\.\-_~,;:\[\]\(\)]|[\.]{2,})", '', $file_name);
解决方案
从表达式中删除方括号(实际上,此表达式删除了不是任何字符表达式的所有内容)还{2,}
意味着您只能在序列内匹配2 个或更多字符时删除它们。您可以使用{1,}
或+
。
$clean = preg_replace("([^\w\s\.\-_~]+)", '', $file_name);
如果你想删除重复的元素,{2,}
这可能是另一个额外的替换,如下所示:
$clean = preg_replace("([.]{2,})", '.', $clean);
例如:
<?php
$file_name="test#&ing %^& (123y456) aaa [678n789]..xxx.txt";
$clean = preg_replace("([^\w\s\.\-_~]+)", '', $file_name);
$clean = preg_replace("([.]{2,})", '.', $clean);
print_r($clean); // 'testing 123y456 aaa 678n789.xxx.txt'
?>
推荐阅读
- mysql - SQL - 将 2 个表中的 2 个值相乘以显示新表的结果
- email - 除了电子邮件主题和正文,我们可以通过 DocuSign API 传递电子邮件标题吗?
- android - 有没有办法在华为应用内购买中订阅更改时获得回调?
- java - ThreadLocal 的 initialValue() 与 set()
- android - 替换已弃用的欧盟同意代码 android admob
- javascript - 无法使用 array.map() 填充选项元素以选择元素
- java - PDFBox 较新版本以混乱的顺序提取数据
- c++ - C++ 不会在 Netbeans 11.0 中安装
- postgresql - PostgreSQL Like 查询 jsonb 列数据
- asp.net - 我们如何将 Android 管理 API 集成到 asp.net 核心 API 中?