gpt4 book ai didi

php - super 简单的正则表达式(preg_replace)不起作用

转载 作者:行者123 更新时间:2023-12-02 22:25:27 26 4
gpt4 key购买 nike

下面的代码应该用 K 替换所有 X 后面没有跟 1 的,但它没有按预期工作。任何人都可以阐明问题所在吗?谢谢!

<?php
$test = "XXXX X1 X2 XXX X1";
$test = preg_replace("/X([^1])/", 'K$1', $test);

echo $test;
?>

Input: XXXX X1 X2 XXX X1
Expected output: KKKK X1 K2 KKK X1

Actual output: KXKX X1 K2 KXK X1

最佳答案

比赛不能重叠。因此,在找到 XX 后,正则表达式引擎将在第三个字符处继续搜索。

改用否定前瞻(这不会成为匹配本身的一部分,但仅确保您的 X 后没有 1):

    $test = preg_replace("/X(?!1)/", 'K', $test);

这也将使在字符串工作的最后替换 X (这在以前是行不通的,因为 [^1] 要求实际上有一个字符(只是不是 1)。

关于php - super 简单的正则表达式(preg_replace)不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13053055/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com