我有一个字符串,说:
www.google.com/tomato.mdm
我需要用西红柿代替番茄(添加n)。我的方法是找到。然后用n替换它。 。这没用。番茄可以是许多不同的词,所以我不能只搜索那个......
他们有什么方法可以解决这个问题吗?
我想过只在第一个实例中替换它,但是在php manuel中找不到这样做的函数。
答案 0 :(得分:3)
我会这样做:
$string = "www.google.com/tomato.mdm";
$lastDot = strrpos($string, '.');
$newString = substr($string, 0, $lastDot) . 'n.' . substr($string, $lastDot + 1);
我使用strrpos查找“。”的最后一次出现。在字符串中。然后我将字符串分成两部分(使用substr):最后一个点之前的所有内容,以及之后的所有内容。然后我插入“n”。在这两个部分之间,应该给出期望的结果。
使用正则表达式的解决方案如下:
$string = "www.google.com/tomato.mdm";
$newString = preg_replace('/(.*?)(\.[^\.]*)$/', '\1n\2', $string);
有关详细信息,请参阅preg_replace和a regex reference。
答案 1 :(得分:0)
您应该使用正则表达式来执行此操作
$newStr = preg_replace("#^(www.google.com/[a-zA-z]*)#", '$1n', "www.google.com/tomato.mdm");