我有很多带有括号的模式,我制作了一个正则表达式,其中不考虑括号而仅考虑它们内部/之间的内容,但是当括号内的文本也包含 [] 括号时存在问题。
谢谢!
正则表达式:(?<inside_value>(?<=\[).*?\[?(?=\]))
例如,
A) [ClusterReceiver[99] ]
B) [first-second-third-8050-exec-a ]
从上面看,B) 工作正常,但 A) 不工作
每个案例返回的内容(不带引号):
B) "first-second-third-8050-exec-a "
A) "ClusterReceiver[99"
想要什么?
B) "first-second-third-8050-exec-a "
A) "ClusterReceiver[99]"
问题是[ ]
外壳内存在支架外壳[ ]
。
最糟糕的情况是,当存在像 A) 这样的问题时,您能否帮助我提出如何接受至少 1 个括号的建议,以便获得 A) 所需的“ClusterReceiver[99]”?
答案1
使用pcregrep
$ pcregrep -o1 -o2 '([^[]*)\[([^]]*[[:alnum:]]][^]]*).*' input_file
A) ClusterReceiver[99]
B) first-second-third-8050-exec-a