Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php str_从字符串中的特定位置替换_Php_String - Fatal编程技术网

Php str_从字符串中的特定位置替换

Php str_从字符串中的特定位置替换,php,string,Php,String,我希望替换字符串中的字符串,但仅替换其中的特定部分,例如从字符位置7开始 e、 例如,“test.string.1”,我想用例如“2”替换第二个“.” 很明显,我有以下几点: $string = str_replace('.', '2', $string); 但这将替换两个句点,我只想替换第二个句点,有些字符串可能有多个句点,我只想替换任意字符位置后的句点。例如5个字符后的第一个句点必须使用substr和STRU replace $string = 'test.string.1'; $stri

我希望替换字符串中的字符串,但仅替换其中的特定部分,例如从字符位置7开始

e、 例如,“test.string.1”,我想用例如“2”替换第二个“.”

很明显,我有以下几点:

$string = str_replace('.', '2', $string);

但这将替换两个句点,我只想替换第二个句点,有些字符串可能有多个句点,我只想替换任意字符位置后的句点。例如5个字符后的第一个句点必须使用substr和STRU replace

$string = 'test.string.1';
$string = substr($string, 0, 7).str_replace('.', '2', substr($string, 7));
echo $string;

结果:test.string21

使用第三个参数表示起点,通过简化的
strops()
来瞄准所需的点可能是最干净的。如果起点后存在一个点,则替换,即可完成。这种技术之所以有效,是因为您正在用一个单独的单字节字符替换一个单独的单字节字符——如果这种情况发生变化,这种技术可能不再适用

正则表达式技术同样稳定,但在未经训练的人看来,这种模式可能有点笨拙
^
标记字符串的开头;
表示任何非换行符。点后面呈现的
{5}
(量词)将匹配字符串中的前5个字符
[^.]*
是一个带零个或多个量词的否定字符类。这将匹配任意数量的非点字符
\K
表示忘记以前匹配的任何字符。最后,
\.
匹配要替换的目标文字点

代码:()

输出:

test.string21.sometext.more
---
test.string21.sometext.more
test.string21.sometext.more
---
test.string21.sometext.more