我试图将一个字符串拆分为0-9+ xX \ 0-9+xX,字符串示例:
L712 4xSL 15/32 (3x L443,4x R119)中的10 x光源4 50°(2下舞台左和右,2级左和右)2 x festoons (上文提到)4x1kx菲涅耳背光--所有这四种灯都是特别聚焦的,从栅格悬挂的1x爱迪生灯泡。
我想用有角度的管道将文本分成几行,显示如下:
10 x源4 50°(左、右2次,左上和右2次) 2次节日(上文提到) L712中的4x1kx菲涅耳背光源 4xSL 15/32 (3x L443,4x R119) --所有四个都是特别特别的 1x爱迪生灯泡悬挂在电网上
我试过使用以下正则表达式,但它包括正则表达式中的下一个1x。
/([0-9]+[xX] [a-zA-z].*)(?:([0-9]+[xX]))/gmOutput: 10x source 4 50° on booms (2 downstage left and right, 2 upstage left and right) 2x festoons (mentioned above) 4x 1kx Fresnel backlight in L712 4x SL 15/32 (3x L443, 4x R119) – all four of which are specifically focused specials 1x我还希望能够添加第一个sentance中提到的选项,以检查两个场景。
然后,我将使用正则表达式将字符串拆分成角。
发布于 2022-02-19 22:11:23
您可以使用
/\d+\s*x\b(?:\([^()]*\)|[^()])*?(?=\d+x|$)/gi见regex演示。详细信息
\d+ -一个或多个数字\s* -零或多个空白空间x\b - x与单词边界(?:\([^()]*\)|[^()])*? - ( +0或更多字符(但尽可能少)的序列,除了(和) + )或除(和)以外的任何字符(?=\d+x|$) -与一个或多个数字以及x或字符串末尾的位置匹配的正前瞻。请参阅JavaScript演示:
const text = "10 x source 4 50° on booms (2 downstage left and right, 2 upstage left and right) 2x festoons (mentioned above) 4x 1kx Fresnel backlight in L712 4x SL 15/32 (3x L443, 4x R119) – all four of which are specifically focused specials 1x Edison bulb suspended from grid";
const re = /\d+\s*x\b(?:\([^()]*\)|[^()])*?(?=\d+x|$)/gi;
document.body.innerHTML = "<pre>" + JSON.stringify(text.match(re), 0, 4) + "</pre>"
https://stackoverflow.com/questions/71189537
复制相似问题