php - preg_replace 最后 4 位数字之间的空格
问题描述
我知道如何从字符串中删除空格:
$text = preg_replace('/\s+/', '', $text);
但是,如果我只需要删除任何数字的最后 4 位之间的空格怎么办?
举个例子:
12895 6 7 8 9
- 我希望它变成12895 6789
或者
2546734 34 55
- 我希望它变成2546734 3455
或者
2334734556 341 5
- 我希望它变成2334734556 3415
我怎么做?
** 更新:我想删除最后四位数字之间的空格,而不是在第一个空格之后(因为所有示例都显示了空格)。所以这样的事情会是一个更好的例子:
23347345563 4 1 5
- 我希望它变成23347345563415
解决方案
preg_replace
你可以用这个正则表达式来实现你想要的:
\s+(?=(\d\s*){0,3}$)
它在它和行尾之间寻找一个空格,后跟 0 到 3 个数字(带有可选空格)(使用正向前瞻)。只需用空字符串 ( ''
) 替换这些空格:
$text = preg_replace('/\s+(?=(\d\s*){0,3}$)/', '', '12895 6 7 8 9');
echo "$text\n";
$text = preg_replace('/\s+(?=(\d\s*){0,3}$)/', '', '2546734 34 55');
echo "$text\n";
$text = preg_replace('/\s+(?=(\d\s*){0,3}$)/', '', '2334734556 341 5');
echo "$text\n";
$text = preg_replace('/\s+(?=(\d\s*){0,3}$)/', '', '23347345563 4 1 5');
echo "$text\n";
输出:
12895 6789
2546734 3455
2334734556 3415
23347345563415
推荐阅读
- python - Tomtom webfleet 消息 api 返回带有消息文本的消息状态标志
- android - 如何使用 Anko(DSL) 制作布局(不是 Activity 布局,Fragment)?
- css - 固定大小和分数之间的css网格minmax
- liquibase - 是否有任何选项可用于在 liquibase 属性文件中设置会话授权参数?
- javascript - Vue 在编译时使用 Typescript 类型检查道具
- r - 使用 gsub 匹配带有字符、数字和空格的子字符串
- qt - 防止 QTableView 滚动到所选项目
- redis - 消息完成结果从消费者返回到生产者
- swift - Swift 解析服务器错误
- vba - Excel VBA /从特定源刷新数据而无需对话框