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