gpt4 book ai didi

php - 如何用字符串中的连字符替换所有数字?

转载 作者:可可西里 更新时间:2023-11-01 00:58:32 26 4
gpt4 key购买 nike

我用一个例子来解释我的问题:

示例:

(英文版)

$str = '1 healthy, fine, sound 2 tip-top, fit, robust, sturdy & 1  substandard, poor';

我想要这个输出:

- healthy, fine, sound
- tip-top, fit, robust, sturdy
&
- substandard, poor

(波斯语版本) - 从右边开始

$str ='1 خشكاندن، خشكانيدن 2رطوبتزدايي كردن، نمزدايي كردن & تر کردن';

我想要这个输出:

- خشكاندن، خشكانيدن
- رطوبتزدايي كردن، نمزدايي كردن
&
تر کردن

我知道,这个例子中的 1 确实很模糊。但实际上它是右边的第一个字符。但是在 SO 中,因为波斯语没有正确的方向,所以 1 在左边。


注意:可能没有数字,甚至没有&。在这种情况下,我不想要任何改变..!

$str = 'healthy, fine, sound, tip-top'; // I want this: healthy, fine, sound, tip-top


$str = 'healthy, fine, sound & poor'; /* I want this: healthy, fine, sound
&
poor
*/

我可以使用多个 str_replace() 来做到这一点。但我想知道,是否可以使用 REGEX 来做到这一点?

最佳答案

此脚本适用于英语和波斯语变体。

$str = "1 خشكاندن، خشكانيدن 2رطوبتزدايي كردن، نمزدايي كردن & تر کردن";
// $str = '1 healthy, fine, sound 2 tip-top, fit, robust, sturdy & 1 substandard, poor';
$dashed_line = preg_replace("/[0-9]+/", "- ", $str);
$lines = preg_replace("/(?<!^)- /", "\n- ", $dashed_line);
$lines_with_and = preg_replace("/&/", "\n&\n", $lines);
$lines_with_and_single_space = preg_replace("/ +/", " ", $lines_with_and);
echo preg_replace("/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/", "\n", $lines_with_and_single_space);

关于php - 如何用字符串中的连字符替换所有数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34325337/

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