gpt4 book ai didi

regex - 通过正则表达式替换匹配中的单个字符

转载 作者:行者123 更新时间:2023-12-04 10:42:03 25 4
gpt4 key购买 nike

我有一个简单的模式,我正在尝试对其进行查找和替换。当它们被数字包围时,它需要用句点替换所有破折号。

替换这些句点:

3-54
32-11
111-4523mhz

像这样:
3.54
32.11
111.4523mhz

但是,我不想替换以下内容中的破折号:
Example-One
A-Test

我尝试使用以下方法:
preg_replace('/[0-9](-)[0-9]/', '.', $string);

但是,这将替换整个匹配,而不仅仅是中间。你如何只替换匹配的一部分?

最佳答案

preg_replace('/([0-9])-([0-9])/', '$1.$2', $string);

应该做的伎俩:)

编辑:更多解释:

通过使用 ()在正则表达式中,您创建一个组。该组可用于替换。 $1替换为第一个匹配组, $2被第二个匹配组替换,依此类推。

这意味着,如果你(只是举例)改变 '$1.$2''$2.$1' ,该操作将交换两个数字。
在您的情况下,这不是有用的行为,但也许它可以帮助您更好地理解原理。

关于regex - 通过正则表达式替换匹配中的单个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10638060/

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