求一正则,匹配两个特殊字符中间内容的指定字符

Boogaloo-Jer 2020-06-10 03:19:09
示例字符串:[code-001-02中国]-[code-002-02法国]+[code-003-02英国]
需求:我需要替换掉符号“-”,但是code-001-02中的“-”不能替换掉,替换以后的字符串应该是这样的:
[code-001-02中国][code-002-02法国][code-003-02英国]

多谢多谢!
...全文
657 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Boogaloo-Jer 2020-06-29
  • 打赏
  • 举报
回复
引用 9 楼 chinaskysun 的回复:
let str123 = "[code-001-02中国]-[code-002-02法国]+[code-003-02英国]"
str123.replace(/\][-+]\[/g,"][")
在控制台运行一下看看
thx!這個對於字符串[code-001-02中国].[&01][color=#FF00FF]-aa[code-002-02法国].[&02]+[code-003-02英国].[&03][/color]不行哎,注意中間是-aa
chinaskysun 2020-06-15
  • 打赏
  • 举报
回复
let str123 = "[code-001-02中国]-[code-002-02法国]+[code-003-02英国]"
str123.replace(/\][-+]\[/g,"][")
在控制台运行一下看看
Boogaloo-Jer 2020-06-10
  • 打赏
  • 举报
回复
引用 6 楼 落落叶叶无声 的回复:
是这样吗
非常感謝,只是還想繼續請教下。看7樓
Boogaloo-Jer 2020-06-10
  • 打赏
  • 举报
回复
自己摸索了下,(?<=\])-*?(?=\[)可以,原來減號不是元字符。也算解決了問題,但還不完美。 如果字符是這樣:[code-001-02中国].[&01]-aa[code-002-02法国].[&02]+[code-003-02英国].[&03] 便不能匹配了。
落落叶叶无声 2020-06-10
  • 打赏
  • 举报
回复
是这样吗
Boogaloo-Jer 2020-06-10
  • 打赏
  • 举报
回复
不知道这样为啥匹配不到:如果换成加号或者其他就可以,偏偏减号不可以(?<=\])\-*?(?=\[)
Boogaloo-Jer 2020-06-10
  • 打赏
  • 举报
回复
引用 3 楼 落落叶叶无声 的回复:
(?<=\]).*?(?=\[)
谢谢! 不好意思,我的问题描述的不够清晰,再补充一下: 其实需求要复杂一些,比如字符串可能是这样的:[code-001-02中国].[&01]-[code-002-02法国].[&02]+[code-003-02英国].[&03] 处理后:[code-001-02中国].[&01][code-002-02法国].[&02][code-003-02英国].[&03] 所以我需要找到特定的字符,(?<=\]).*?(?=\[)这个表达式无法满足。
落落叶叶无声 2020-06-10
  • 打赏
  • 举报
回复
(?<=\]).*?(?=\[)
Boogaloo-Jer 2020-06-10
  • 打赏
  • 举报
回复
引用 1 楼 为情难免泪孤别 的回复:
替换跟正则有关系吗
你会吗? Regex.Replace(字符串, "正则", "")
不会么么哒 2020-06-10
  • 打赏
  • 举报
回复
替换跟正则有关系吗

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧