如何替换以“a”开头并以“z”结尾的字符串?
基本上我希望能够做与 str_replace 相同的事情,但对“干草堆”中两个字符串之间的值无动于衷。
是否有内置功能?如果没有,我将如何有效地制作完成它的功能?
这可以通过正则表达式(简称RegEx)来完成。这是一个简单的例子:
$string = 'coolAfrackZInLife';
$replacement = 'Stuff';
$result = preg_replace('/A.*Z/', $replacement, $string);
echo $result;
上面的例子将返回coolStuffInLife
给定正则表达式的一点解释 /A.*Z/
:
- 斜线表示正则表达式的开始和结束;
- A 和 Z 是您需要替换的开始和结束字符;
-.
匹配任何单个字符
-*
零个或多个给定字符(在我们的例子中 - 所有字符)
- 您可以选择使用+
而不是*
仅当两者之间存在某些内容时才匹配
查看Rubular.com,了解测试 RegEx 的简单方法。它还提供简短的 RegEx 参考
$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?是否只有字母可以介于两者之间?字母数字?在我扩展正则表达式之前,您需要解释各种场景。
使用preg_replace以便您可以使用正则表达式模式。