Php 正则表达式匹配[]和()并替换它

Php 正则表达式匹配[]和()并替换它,php,regex,Php,Regex,我有以下文本,希望删除括号[]和()之间的所有内容 班加罗尔(孟加拉语)™ÉuËɾu(倾听))也称为 班加罗尔是印度第三大城市,也是印度的中心 印度第五大都市区。位于印度南部 在德干高原,它是印度南部印第安纳州的首府 卡纳塔克邦。班加罗尔被称为“印度硅谷”,因为 其作为国家领先的信息技术(IT)的作用 出口商。[5][6][7]位于超过3000英尺(914.4米)的高度 班加罗尔位于海平面以上,气候宜人 全年。它是印度最高的大都市。[8]这座城市 是全球十大首选创业地点之一 世界[9] Reg

我有以下文本,希望删除括号
[]
()
之间的所有内容

班加罗尔(孟加拉语)™ÉuËɾu(倾听))也称为 班加罗尔是印度第三大城市,也是印度的中心 印度第五大都市区。位于印度南部 在德干高原,它是印度南部印第安纳州的首府 卡纳塔克邦。班加罗尔被称为“印度硅谷”,因为 其作为国家领先的信息技术(IT)的作用 出口商。[5][6][7]位于超过3000英尺(914.4米)的高度 班加罗尔位于海平面以上,气候宜人 全年。它是印度最高的大都市。[8]这座城市 是全球十大首选创业地点之一 世界[9]

Regex我正在尝试,但不起作用

#\[\(.+?)\]#s


如何从上述段落中删除这些内容?

由于文本包含嵌套的括号,因此需要递归解决方案。幸运的是,PCRE支持递归,所以这很容易

下面的正则表达式应该可以做到这一点:

\[([^\[\]]|(?R))*]|\(([^()]|(?R))*\)
它基本上包含两部分-一部分用于匹配简单括号内的所有内容(
(…)
),另一部分用于匹配方括号内的所有内容(
[…]

Regex尸检:

\[            # match '['
(             # start group 1
 [^\[\]]      #   match any character except '[' and ']'
 |            #   OR
 (?R)         #   recursively match the entire pattern
)*            # repeat zero or more times
]             # match ']'

|             # OR

\(            # match '('
(             # start group 2
 [^()]        #   match any character except '(' and ')'
 |            #   OR
 (?R)         #   recursively match the entire pattern
)*            # repeat zero or more times
\)            # match ')'

由于文本包含嵌套的括号,因此需要递归解决方案。幸运的是,PCRE支持递归,所以这很容易

下面的正则表达式应该可以做到这一点:

\[([^\[\]]|(?R))*]|\(([^()]|(?R))*\)
它基本上包含两部分-一部分用于匹配简单括号内的所有内容(
(…)
),另一部分用于匹配方括号内的所有内容(
[…]

Regex尸检:

\[            # match '['
(             # start group 1
 [^\[\]]      #   match any character except '[' and ']'
 |            #   OR
 (?R)         #   recursively match the entire pattern
)*            # repeat zero or more times
]             # match ']'

|             # OR

\(            # match '('
(             # start group 2
 [^()]        #   match any character except '(' and ')'
 |            #   OR
 (?R)         #   recursively match the entire pattern
)*            # repeat zero or more times
\)            # match ')'

这会让嵌套的括号阻塞。+1。遗憾的是,没有很好的方法来组合递归模式:-)+1这是递归子模式的一个很好的用法。这会让嵌套的括号阻塞。+1。遗憾的是,没有很好的方法来组合递归模式:-)+1这是递归子模式的一个很好的用途。