PHP删除括号中的数字

时间:2015-06-29 16:50:03

标签: php regex

我在PHP中有一个类似于以下内容的字符串:Foo [123][bar]我想完全从字符串中删除[123],所以我最终得到Foo [bar]

另一个例子是Blah [9484][M0200 blah blah blah],它使事情变得更复杂,因为我不能简单地删除所有数字然后删除空括号。第一组括号总是包含一个3-4位数字,而且从不包含任何字母,但第二个括号可以包含任何字母。

有关我如何做到这一点的任何建议? 感谢。

2 个答案:

答案 0 :(得分:0)

这对于preg_replace来说非常简单:

$str = "Foo [123][bar]";
$str = preg_replace("/\[[0-9]+\]/", null, $str);

答案 1 :(得分:0)

这个正则表达式

\[\d{3,4}\]

会在括号内找到所有3-4位数字。

演示:https://regex101.com/r/kH3nZ5/1

与preg_replace http://php.net/manual/en/function.preg-replace.php一起使用,这将替换所有找到的实例。

echo preg_replace('~\[\d{3,4}\]~', '', 'Blah [9484][M0200 blah blah blah]');

输出:

  

Blah [M0200 blah blah blah]

\d是任意单个数字,{3,4}表示至少出现3次且不超过4次。

有关正则表达式详细信息的页面,
http://www.rexegg.com/
http://www.regular-expressions.info/