Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.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 将一个自定义字符串替换为另一个自定义字符串_Php_Regex - Fatal编程技术网

Php 将一个自定义字符串替换为另一个自定义字符串

Php 将一个自定义字符串替换为另一个自定义字符串,php,regex,Php,Regex,如何替换以“a”开头、以“z”结尾的字符串 基本上,我希望能够做与str_replace相同的事情,但对“大海捞针”中两个字符串之间的值漠不关心 这有内置的功能吗?如果没有,我将如何高效地创建一个函数来完成它呢?使用,这样您就可以使用正则表达式模式了 $string = "I really want to replace aFGHJKz with booo"; $new_string = preg_replace('/a[a-zA-z]+z/', 'boo', $string); echo $n

如何替换以“a”开头、以“z”结尾的字符串

基本上,我希望能够做与str_replace相同的事情,但对“大海捞针”中两个字符串之间的值漠不关心

这有内置的功能吗?如果没有,我将如何高效地创建一个函数来完成它呢?

使用,这样您就可以使用正则表达式模式了

$string = "I really want to replace aFGHJKz with booo";
$new_string = preg_replace('/a[a-zA-z]+z/', 'boo', $string);
echo $new_string;

小心正则表达式,你想找到第一个z还是最后一个z?是不是只有字母可以在中间?字母数字?在我展开regex之前,您需要解释各种场景。

这可以通过正则表达式(简称regex)完成。 下面是一个简单的例子:

上述示例将返回
coolStuffInLife

关于givven正则表达式的一点解释
/A.*Z/

-斜线表示正则表达式的开始和结束
-A和Z是需要替换的起始字符和结束字符
-
匹配任何单个字符
-
*
给定字符的零个或多个(在本例中为所有字符)
-您可以选择使用
+
而不是
*
,只有在两者之间有某种东西时才会匹配


看一看测试正则表达式的简单方法。它还提供了简短的RegEx参考

听起来像是regexp的东西,你看了完美了吗。谢谢当我can@Rawkode嘿,这并不是说这将只匹配A和Z之间的字母字符,而不是所有可能会出现问题的符号。为什么
'/A[A-zA-Z]+Z/'
?这样做只允许字符串中的a-z和a-z字符
'/A.*Z/'
更好我在回答中说,在我提供更合适的正则表达式之前,我需要更多地了解正在被替换的内容和应该被替换的内容。他已经做到了。。别告诉我你在两分钟内读了那页
$string = 'coolAfrackZInLife';
$replacement = 'Stuff';
$result = preg_replace('/A.*Z/', $replacement, $string);
echo $result;