从字符串中删除特定字符的方法?
我需要从下面的变量值中删除$widget_text
中的括号“[”和“]”,并将结果存储在$widget_id
中。从字符串中删除特定字符的方法?
$widget_text = '[widget_and-some-text]';
$widget_id = ?;
使用preg_replace
,str_replace
或其他什么东西?
有几种方法可用,它们有时可以执行完全相同的任务,如preg_replace/str_replace。但是,也许你只想从字符串的开头或结尾去掉括号;在这种情况下preg_replace工作。但是,如果可能有几个括号,preg_replace也可以完成这项工作。但修剪更容易,更有意义。
的preg_replace() - 删除开头和结尾的括号
$widget_id = preg_replace(array('/^\[/','/\]$/'), '',$widget_text);
str_replace()函数 - 这在任何地方删除括号内的文字
$widget_id = str_replace(array('[',']'), '',$widget_text);
装饰() - 修剪括号从开始和结束
$widget_id = trim($widget_text,'[]')
个
SUBSTR() - 不一样的装饰()(假设小部件的文字不包括在文本中的任何闭括号)
$widget_id = substr($widget_text,
$start = strspn($widget_text, '['),
strcspn($widget_text, ']') - $start
);
+1以获得有用的解释和用例示例。 – 2011-03-25 15:23:06
@Scott B:np,只是想通了你已经知道_how_使用str_replace – 2011-03-25 15:24:47
是的:我可能实际上喜欢这种情况下的修剪选项。它的好处就在于它的微不足道。 – 2011-03-25 15:34:47
$widget_id = str_replace('[', '', str_replace(']', '', $widget_text));
'$ widget_id = str_replace(array('[',']'),'',$ widget_text);'更好 – 2011-03-25 14:28:27
@Carlos:谢谢! – 2011-03-25 14:30:05
如果括号总是在第一和最后的位置,使用此:
$widget_id = substr($widget_text, 1, strlen($widget_text)-2);
我认为这是一个更快的方法...
最快的方法:$ widget_text ='widget_and-some-text'; :P – 2011-03-25 14:48:17
但开玩笑说,它应该比等效的preg_replace(array('/^\ [/','/ \] $ /'),'',$ widget_text) – 2011-03-25 15:10:20
米歇尔的回答将帮助您完成,但你希望做的字符串的任何验证? – 2011-03-25 14:28:52
@Col。 S:谢谢你的建议,sans废话;-) – 2011-03-25 15:32:41