在 PHP 中使用 preg_replace - 奇怪的行为

迈克尔·迪

我有以下几点:

$string = '4745518 some text 4510018 some text 4743618 4745518 some text 4510518 some text';
$newstring = preg_replace('/[1-9]{7,7}/','NEWTRANSACTION: $0',$string);

我的意图是“用'NEWTRANSACTION:'加上这七位数字替换所有出现的七位数字。”

但是,我的结果是:

 NEWTRANS: 4745518 some text 4510018 some text NEWTRANS: 4743618 NEWTRANS: 4745518
 some text 4510518 some text

换句话说,似乎只有部分七位数字组被替换。如果我编辑原始字符串,移动七位数字组,这些相同的七位数字组将被替换。这就像只有某些数字组合被标记为替换。我的实际输入字符串有数百行长,而且似乎确实正在替换随机的七位数字组。

任何人都可以看到有什么问题吗?提前致谢。

=== 编辑 === 感谢您这么快提供的所有帮助。我会使用/\b\d{7}\b/它,它就像一个魅力。我是 regex 的新手,所以我在这里学到了一些东西——尽管没有意识到缺少的“0”对我来说是完全愚蠢的。

我的不好,在代码中显示“NEWTRANSACTION:”,但在输出中显示“NEWTRAN:”。我只是输入输出,而不是复制/粘贴,并意外地缩短了它。

再次感谢。

服务隔离期

更改[1-9]后您的代码工作正常[0-9](因为您的数字在某些地方也有 0)

<?php

$string = '4745518 some text 4510018 some text 4743618 4745518 some text 4510518 some text';
echo $newstring = preg_replace('/[0-9]{7,7}/','NEWTRANSACTION: $0',$string);

https://eval.in/984686

注意:- @GrumpyCrouton、@kaii 和 @Barmar 在评论中给出的代码要短得多

/\b\d{7}\b/

输出:- https://eval.in/984792

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在PHP的preg_replace()中使用每个匹配项

来自分类Dev

在PHP的preg_replace中使用反向引用

来自分类Dev

如何在PHP中使用preg_replace()?

来自分类Dev

PHP preg_replace

来自分类Dev

使用php preg_replace替换最接近的匹配词

来自分类Dev

与preg_replace一起使用的PHP substr

来自分类Dev

PHP Regex使用preg_replace减少了空间

来自分类Dev

使用Preg_Replace PHP的条件运算符

来自分类Dev

数组:使用 preg_replace 和排序过滤 [PHP - WordPress]

来自分类Dev

为什么 php 中的 preg_match 与 preg_replace 的行为不同(导致不同的匹配)?

来自分类Dev

如何在尺寸表中使用preg_replace并在PHP中进行替换?

来自分类Dev

如何在尺寸表中使用preg_replace并在PHP中进行替换?

来自分类Dev

如何在带有{{mustache}}的PHP中使用preg_replace

来自分类Dev

如何在 PHP 中使用 preg_replace 来做这个例子?

来自分类Dev

如何在php中使用preg_replace用每个唯一值替换多次出现

来自分类Dev

preg_match_all php的奇怪行为

来自分类Dev

php preg_replace用法-

来自分类Dev

PHP复杂preg_replace

来自分类Dev

PHP preg_replace HREF

来自分类Dev

PHP:preg_replace函数

来自分类Dev

PHP preg_replace HREF

来自分类Dev

PHP的条件preg_replace

来自分类Dev

PHP字符串preg_replace,保留奇怪的字母和数字

来自分类Dev

使用 Preg_replace 的问题

来自分类Dev

在PHP中我如何在preg_replace中使用两个正则表达式?

来自分类Dev

“é”,“è”和所有带有重音符号的字母未在PHP函数中使用PREG_REPLACE显示

来自分类Dev

在数据数组上使用$ amp的PHP str_replace的奇怪行为

来自分类Dev

使用preg_replace和FOR循环替换PHP关键字

来自分类Dev

使用PHP preg_replace自动链接joomla中的预定义单词的功能

Related 相关文章

热门标签

归档