我想通过删除第一个和最后一个字符来更改PHP中的字符串,但只要它们相等。
让我举几个例子:
' abc ' should become 'abc'
'abc a' should become 'bc '
' abc a' should not change
我该怎么办?
感谢您的帮助,基于正则表达式的解决方案正常运行。
答案 0 :(得分:6)
您可以使用正则表达式:
$str = preg_replace('~^(.)(.*)\1$~','$2',$str);
正则表达式解释:
~
:分隔符^
:启动锚点(.)
:匹配并记住一个字符(
这里是第一个char)(.*)
:匹配任何内容并记住\1
:召回第一场比赛$
:结束锚$2
:回想第二场比赛或者你可以这样做:
// if string has >1 char and 1st and last char as same.
if(strlen($str) > 1 && $str[0] == $str[strlen($str)-1]) {
$str = substr($str,1,strlen($str)-2); // extract the substring
}