在Linux环境下使用PHP脚本处理文本是开发者的常见需求,而正则表达式则是文本处理的强大工具。本文将分享几个实用的PHP正则表达式应用场景和技巧。
PHP中使用preg系列函数处理正则表达式,常用函数包括:
preg_match() - 执行匹配
preg_match_all() - 全局匹配
preg_replace() - 替换匹配项
preg_split() - 分割字符串
preg_grep() - 数组匹配过滤
从Nginx/Apache日志中提取特定信息:
$log = '192.168.1.1 - - [10/Oct/2023:13:55:36 +0800] "GET /index.html HTTP/1.1" 200 2326';
preg_match('/^(\S+) .*\[(.*)\] "(\S+) (.*?) (\S+)" (\d+) (\d+)/', $log, $matches);
修改INI格式配置文件:
$config = preg_replace('/^database\.host\s*=\s*.*/m', 'database.host = 127.0.0.1', $config);
去除HTML标签和多余空格:
$clean = preg_replace(['/<[^>]*>/', '/\s+/'], ['', ' '], $dirtyText);
问题1:中文匹配失败
解决方案:添加u修饰符 preg_match('/中文/u', $text)
问题2:多行匹配问题
解决方案:使用s修饰符使.匹配换行符
通过合理使用正则表达式,可以大幅提升PHP脚本处理文本的效率和灵活性。建议结合具体业务场景选择最适合的正则方案。