Php 匹配数字,但不包括方括号内的数字

Php 匹配数字,但不包括方括号内的数字,php,regex,Php,Regex,我正在使用PHP。我有以下类型的字符串: 3-5 8[4]-10 14-21[5] 1[5]-12[2] 我试图找出一个正则表达式,只捕获方括号前的数字,并排除方括号内的数字和括号,这样得到的字符串将是: 3-5 8-10 14-21 1-12 经过多次尝试后,我不明白如何编写排除匹配项的正则表达式。$bracketsRemoved=preg\u replace'/\[\d+\]/',$numbers with brackes 您可以使用preg_替换来去除这些支架 // The strin

我正在使用PHP。我有以下类型的字符串:

3-5
8[4]-10
14-21[5]
1[5]-12[2]
我试图找出一个正则表达式,只捕获方括号前的数字,并排除方括号内的数字和括号,这样得到的字符串将是:

3-5
8-10
14-21
1-12
经过多次尝试后,我不明白如何编写排除匹配项的正则表达式。

$bracketsRemoved=preg\u replace'/\[\d+\]/',$numbers with brackes

您可以使用preg_替换来去除这些支架

// The string
$bracketedString = '19-4[5]';

// Remove brackets
$bracketless = preg_replace('/\[\d+\]/', '', $bracketedString);

/.../ - The regexp
\[ - The escaped opening bracket
\d+ - Numeric values
\] - The escaped closing bracket
资源