Изменить строку на основе шаблона - PullRequest
3 голосов
/ 30 августа 2010

Я хочу изменить строку в PHP, удалив первый и последний символ, но ТОЛЬКО ЕСЛИ они равны.

Позвольте привести несколько примеров:

' abc ' should become 'abc'
'abc a' should become 'bc '
' abc a' should not change

Как мне это сделать?

Спасибо за помощь, решение на основе регулярных выражений работает.

1 Ответ

6 голосов
/ 30 августа 2010

Вы можете использовать регулярное выражение:

$str = preg_replace('~^(.)(.*)\1$~','$2',$str);

Regex объяснение:

  • ~: разделители
  • ^: стартовый якорь
  • (.): сопоставить и запомнить символ ( вот его первый символ)
  • (.*): сопоставьте что-нибудь и запомните
  • \1: вспомнить первый матч
  • $: концевой анкер
  • $2: вспомнить 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
}   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...