我只想在类别出现之前匹配":red"、":10"、":[特殊]"(我想在之后使用替换函数消除它们)

category fruit(color: red, size: 10, others: [special])

我有上面的正则表达式

(((:\s*[\w\[\]]+)(?=[,\)]))+)

除了类别,我似乎不能使用lookbehind.

推荐答案

如果我们采用以下输入verbatim????:

Figure I - Input String

category fruit(color: red, size: 10, others: [special])

使用正向查找来匹配文字: red: 10: [special]:

Figure II

/(?<=category[\S\s]+?)(:\s?red|:\s?10|:\s?\[special\])/g

Figure III

Segment Description
(?<=category[\S\s]+?) Match, but do not consume, literal "categorey", anything in between if it proceeds...
(:\s?red|:\s?10|:\s?\[special\]) ...literal colon, zero to one space, literal "read" OR literal colon, zero to one space, literal "10" OR literal colon, zero to one space, literal "[special]"

参见Regex101

???? Jeffery Flynt comments 说它在语法上不正确,我不得不同意

Javascript相关问答推荐

在卡信息之间切换

如何使用JavaScript用等效的功能性HTML替换标记URL格式?

字节数组通过echo框架传输到JS blob

如何使用JavaScript将文本插入空div

在nextjs服务器端api调用中传递认证凭证

函数返回与输入对象具有相同键的对象

从Node JS将对象数组中的数据插入Postgres表

cypress中e2e测试上的Click()事件在Switch Element Plus组件上使用时不起作用

使用Promise.All并发解决时,每个promise 的线性时间增加?

VSCode中出现随机行

从另一个数组中的对应行/键值对更新数组中的键值对对象

在VS代码上一次设置多个变量格式

警告框不显示包含HTML输入字段的总和

无法重定向到Next.js中的动态URL

在Java脚本中录制视频后看不到曲目

Clip-Path在网页浏览器(Mozilla、Edge、Chrome)上不能正常工作,但在预览版Visual Code Studio HTML、CSS、JS上却能很好地工作

不协调嵌入图片

为什么我的Navbar.css没有显示在本地主机页面上?

调用特定数组索引时,为什么类型脚本不判断未定义

脚本语法错误只是一个字符串,而不是一个对象?