php正则表达式将字符串后跟数字转换为多个字符串,每个字符串后跟一个数字

发布于 2024-09-10 14:54:29 字数 153 浏览 3 评论 0原文

如何

Apple 123456

用 php PCRE替换

Apple 1|Apple 2|Apple 3|Apple 4|Apple 5|Apple 6

how to i replace

Apple 123456

to

Apple 1|Apple 2|Apple 3|Apple 4|Apple 5|Apple 6

by php pcre?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

是你 2024-09-17 14:54:29

使用负向前瞻的 Bogdan 正则表达式的修改版本。

将 number 替换为 "number|Apple ",除非它是字符串中的最后一个字符。

<?
$string = "Apple 123456";
echo preg_replace('/([0-9])(?!$)/', '$1|Apple ', $string);
?>

输出:Apple 1|Apple 2|Apple 3|Apple 4|Apple 5|Apple 6

Modified version of Bogdan's regex using negative lookahead.

Replace number with "number|Apple " unless it is the last character in the string.

<?
$string = "Apple 123456";
echo preg_replace('/([0-9])(?!$)/', '$1|Apple ', $string);
?>

Ouput: Apple 1|Apple 2|Apple 3|Apple 4|Apple 5|Apple 6

℉絮湮 2024-09-17 14:54:29

有了这个,你就得到了你想要的部分结果:

<?php
    echo preg_replace('/([0-9])/', 'Apple $1|', 'Apple 123456');

结果是:Apple Apple 1|Apple 2|Apple 3|Apple 4|Apple 5|Apple 6|

要删除第一个“Apple”,你可以< code>str_replace() 或 explode() 初始字符串,结果类似于

<?php
    $string = 'Apple 123456';
    $string = str_replace("Apple", "", $string);
    echo preg_replace('/([0-9])/', 'Apple $1|', $string);

The result is Apple 1|Apple 2|Apple 3|Apple 4|Apple 5|Apple 6|。
您可以使用 substr($result, 0, -1) 删除最后一个管道。

最终代码如下所示:

<?php
    $string = 'Apple 123456';
    $string = str_replace("Apple", "", $string);
    $regex = preg_replace('/([0-9])/', 'Apple $1|', $string);
    echo substr($regex, 0, -1);

With this one you get partially what you want:

<?php
    echo preg_replace('/([0-9])/', 'Apple $1|', 'Apple 123456');

That results in: Apple Apple 1|Apple 2|Apple 3|Apple 4|Apple 5|Apple 6|

For removing the first "Apple" you could str_replace() or explode() the initial string, resulting something like

<?php
    $string = 'Apple 123456';
    $string = str_replace("Apple", "", $string);
    echo preg_replace('/([0-9])/', 'Apple $1|', $string);

The result here is Apple 1|Apple 2|Apple 3|Apple 4|Apple 5|Apple 6|.
You can remove the last pipe by using substr($result, 0, -1).

The final code will look like this:

<?php
    $string = 'Apple 123456';
    $string = str_replace("Apple", "", $string);
    $regex = preg_replace('/([0-9])/', 'Apple $1|', $string);
    echo substr($regex, 0, -1);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文