3

I want to change a string in PHP by deleting the first and the last char but ONLY IF they are equal.

Let me give some examples:

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

How do I do it?

Thanks for the help, the regex based solution works.

1 Answer 1

6

You can use the regex:

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

Regex explanation:

  • ~ : Delimiters
  • ^ : Start anchor
  • (.) : match and remember a char ( here its the first char)
  • (.*) : match anything and remember
  • \1 : recall the first match
  • $ : End anchor
  • $2 : recall the 2nd match

Alternatively you can do:

// 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
}   
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.