从一个自定义字符串替换另一个自定义字符串

时间:2012-06-27 12:09:20

标签: php regex

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

基本上我希望能够和str_replace做同样的事情,但对'haystack'中两个字符串之间的值无动于衷。

这是否有内置功能?如果没有,我将如何有效地制作完成它的功能?

3 个答案:

答案 0 :(得分:1)

可以使用正则表达式(简称RegEx)来完成。 这是一个简单的例子:

$string = 'coolAfrackZInLife';
$replacement = 'Stuff';
$result = preg_replace('/A.*Z/', $replacement, $string);
echo $result;

上面的示例将返回coolStuffInLife

关于Givven RegEx的一点解释 /A.*Z/
- 斜杠表示正则表达式的开头和结尾;
- A和Z是您需要替换的起始和结束字符;
- .匹配任何单个字符 - *给定角色的零个或多个(在我们的例子中 - 所有角色)
- 您可以选择使用+代替*,只有在介于两者之间时才会匹配

查看Rubular.com以了解测试RegEx的简单方法。它还提供简短的RegEx参考

答案 1 :(得分:0)

使用preg_replace,以便您可以使用正则表达式模式。

答案 2 :(得分:0)

$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?它只是可以介于两者之间的字母吗?字母数字?在扩展正则表达式之前,您需要解释各种各样的场景。