想要删除除了 # NewLine、完成的括号集合和大括号内的数字之外的所有内容。
示例输入:
# (1296) {20} [529] [1496] [411]
# (MONDAY ) (1296)
# (646) {20} (BEACH 7) [20 Mtrs] { 03 Foot }
# {19} [455] [721] (1296) (SUNDAY ) [2741] (MONDAY (WEDNESDAY {20}
# {19} (1296)
不起作用的代码:
$re = '/(?:\[[^][]*]|\([^()]*\)|{[^{}]*})(*SKIP)(*F)|[^][(){}@#]+/m';
$result = preg_replace($re, '', $input);
输出结果不正确:
#(1296){20}[529][1496][411]
#(1296)
#(646){20}(BEACH 7)[20 Mtrs]{ 03 Foot }
#{19}[455][721](1296)[2741](({20}
#{19}(1296)
期望的输出:
#(1296) {20} [529] [1496] [411]
#(1296)
#(646) {20}
#{19} [455] [721] (1296) [2741] {20}
#{19} (1296)
(MONDAY (WEDNESDAY {20}
这样的东西时,我几乎想使用换行符和空格对其进行标记化,并检查每个标记。 - Chris Haas((?:\[\d*\]|\(\d*\)|{\d*})\s?)|[^#\r\n]
为$1
。 - bobble bubble