首页 > 解决方案 > 如何处理正则表达式中的可选组并删除结果的尾随空格

问题描述

我正在尝试提取字符串和可选括号的内容,但我不知道如何处理可选括号:

lorem, ipsum
lorem ipsum
lorem, ipsum (X123), 
lorem ipsum (X.12), 
lorem ipsum    (X.12), 
lorem ipsum (X1)

我正在尝试使用 regex /(.*)\((.*?)\)/gm,但这不会处理前两行。对于前两行,第二组的结果为空。我也想去掉文本结果的尾随空格。

第一组的预期结果应该是lorem ipsumorlorem, ipsumX123/ X.12/X1第二组。

https://regex101.com/r/ZcCLCL/2

标签: javascriptregex

解决方案


我的猜测是,也许这个表达式,或者它的修改版本,

^([^(]*?)$|^([^(]*)((?:\(([^)]*?)\))?)

可能会奏效。

演示


推荐阅读