首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角Regex分裂字符串1x asd.2x asd

角Regex分裂字符串1x asd.2x asd
EN

Stack Overflow用户
提问于 2022-02-19 21:55:19
回答 1查看 64关注 0票数 1

我试图将一个字符串拆分为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。

代码语言:javascript
复制
/([0-9]+[xX] [a-zA-z].*)(?:([0-9]+[xX]))/gm
代码语言:javascript
复制
Output: 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中提到的选项,以检查两个场景。

  1. 1xASD..。
  2. 1×asd.

然后,我将使用正则表达式将字符串拆分成角。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-19 22:11:23

您可以使用

代码语言:javascript
复制
/\d+\s*x\b(?:\([^()]*\)|[^()])*?(?=\d+x|$)/gi

regex演示。详细信息

  • \d+ -一个或多个数字
  • \s* -零或多个空白空间
  • x\b - x与单词边界
  • (?:\([^()]*\)|[^()])*? - ( +0或更多字符(但尽可能少)的序列,除了() + )或除()以外的任何字符
  • (?=\d+x|$) -与一个或多个数字以及x或字符串末尾的位置匹配的正前瞻。

请参阅JavaScript演示:

代码语言: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>"

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71189537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档