我在PHP中有一个类似于以下内容的字符串:Foo [123][bar]
我想完全从字符串中删除[123]
,所以我最终得到Foo [bar]
。
另一个例子是Blah [9484][M0200 blah blah blah]
,它使事情变得更复杂,因为我不能简单地删除所有数字然后删除空括号。第一组括号总是包含一个3-4位数字,而且从不包含任何字母,但第二个括号可以包含任何字母。
有关我如何做到这一点的任何建议? 感谢。
答案 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/