3
我想通过删除第一个和最后一个字符来改变PHP中的字符串,但只在它们相等时才更改。根据模式更改字符串
让我举一些例子:
' abc ' should become 'abc'
'abc a' should become 'bc '
' abc a' should not change
我该怎么办呢?
感谢您的帮助,基于正则表达式的解决方案的工作原理。
我想通过删除第一个和最后一个字符来改变PHP中的字符串,但只在它们相等时才更改。根据模式更改字符串
让我举一些例子:
' abc ' should become 'abc'
'abc a' should become 'bc '
' abc a' should not change
我该怎么办呢?
感谢您的帮助,基于正则表达式的解决方案的工作原理。
您可以使用正则表达式:
$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
}
不这项工作为1个字符串如'a'?因为strlen('a') - 2 == -1 .. – Ishtar 2010-08-30 13:18:01