正则表达式
| 符号 | 意义 | 举例 |
|---|---|---|
| ^ | 匹配行或者字符串的起始位置,有时还会匹配整个文档的起始位置 | C |
| $ | 匹配行或字符串的结尾 | C |
| . | 匹配除了换行符以外的任何字符 | |
| ([\d\D]*) | 匹配包含换行符以的任何字符 | |
| ([\s\S]*) | 匹配包含换行符以的任何字符 | |
| ([\w\W]*) | 匹配包含换行符以的任何字符 | |
| \d | 匹配数 | C |
| \w | 匹配字母,数字,下划线 | C |
| \s | 匹配空格 | C |
| A | B | C |
| A | B | C |
| A | B | C |
中文
- 文件路径有中文,修改文件路径
$pattern = "/[\x{4E00}-\x{9FA5}]+/u"; preg_match($pattern, $relativePath, $match); if (!empty($match)) { $pathinfo = pathinfo($relativePath); $relativePath = '/temp/'.microtime(true).rand(0,9999).'.'.$pathinfo['extension']; $url = formatFileUrl($relativePath); } - 特殊符号会导致oss地址无法访问,规范文件名
function ossSafetyFileName(string $fileName) { $pattern = "/[\x{4E00}-\x{9FA5}A-Za-z0-9-_.()]+$/u"; $char_arr = mb_str_split($fileName); $matches = []; foreach ($char_arr as $char) { if (!preg_match($pattern, $char)) { $matches[] = $char; } } if ($matches) { $fileName = str_replace($matches, '', $fileName); } return $fileName; }
