php - 正则表达式替换一个或两个字母词

标签 php regex

我正在尝试替换字符串中的一两个字母。请考虑这个正则表达式

$str = 'I haven\'t got much time to spend!';
echo preg_replace('/\b([a-z0-9]{1,2})\b/i','',$str);

returns: haven' got much time spend!
expected output: haven't got much time spend!

我的目标是从字符串中删除任何一个或两个字符长度的单词。这可以是字母数字或特殊字符。

最佳答案

使用环视:

preg_replace('/(?<!\S)\S{1,2}(?!\S)/', '', $str)

虽然这会在删除单词时留下双空格。要同时删除空格,您可以尝试类似的操作:

preg_replace('/\s+\S{1,2}(?!\S)|(?<!\S)\S{1,2}\s+/', '', $str)

关于php - 正则表达式替换一个或两个字母词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6810253/

相关文章:

php - MySQL超时问题

php - 如何在 Laravel 中编辑 AJAX 数据返回的部分?

python - 在 % 之后删除文本文件中的部分行,除非在 python 中前缀为\

regex - 有什么好的测试用例可以显示 Perl 中前/后/匹配变量的正则表达式性能问题?

python - 使用Python删除不包含正则表达式匹配的单元格/行

python - 用于提取关注者计数的正则表达式模式

php - 我的代码没有显示任何错误消息,但没有向数据库中插入任何数据

javascript - 如何通过网页按钮onclick执行linux脚本?

php - MYSQL文件大小不显示

R弦清洁