Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Methods to remove specific characters from string?

Tags:

string

php

I need to remove the brackets "[" and "]" from $widget_text in the variable value below and store the result in $widget_id.

$widget_text = '[widget_and-some-text]'; $widget_id = ?; 

Use preg_replace, str_replace or something else?

like image 290
Scott B Avatar asked Mar 25 '11 14:03

Scott B


People also ask

How do I remove a specific character from a string?

You can also remove a specified character or substring from a string by calling the String. Replace(String, String) method and specifying an empty string (String. Empty) as the replacement. The following example removes all commas from a string.

How do I remove certain letters from a string in Python?

You can remove a character from a Python string using replace() or translate(). Both these methods replace a character or string with a given value. If an empty string is specified, the character or string you select is removed from the string without a replacement.


1 Answers

There are several methods available, and they can sometimes be made to perform exactly the same task, like preg_replace/str_replace. But, perhaps you want to remove brackets only from the beginning or end of the string; in which case preg_replace works. But, if there could be several brackets, preg_replace can do the job too. But trim is easier and makes more sense.

preg_replace() - removes beginning and trailing brackets

$widget_id = preg_replace(array('/^\[/','/\]$/'), '',$widget_text);       

str_replace() - this removes brackets anywhere in the text

$widget_id = str_replace(array('[',']'), '',$widget_text); 

trim() - trims brackets from beginning and end

$widget_id = trim($widget_text,'[]') 

substr() - does the same as trim() (assuming the widget text does not include any closing brackets within the text)

$widget_id = substr($widget_text,                     $start = strspn($widget_text, '['),                     strcspn($widget_text, ']') - $start              ); 
like image 57
Peter Lindqvist Avatar answered Sep 29 '22 05:09

Peter Lindqvist