Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
4.1k views
in Technique[技术] by (71.8m points)

js正则的问题

正则


let str = `\loves{小猫}{鱼}
  \loves2{小猫1}{鱼2}
 `;


 let reg2 = new RegExp(`(\\([\s\S]*?))(\{)([\s\S]*?)(\})(\{)([\s\S^\{\}]*?)(\})(\{)([\s\S]*?)(\})`);

 let arr = reg2.exec(str);
        

结果

> arr [
  '\loves{小猫}{鱼}
        \loves2{小猫1}{鱼2}',
  '\loves',
  'loves',
  '{',
  '小猫',
  '}',
  '{',
  '鱼}
        \loves2{小猫1',
  '}',
  '{',
  '鱼2',
  '}',
  index: 0,
  input: '\loves{小猫}{鱼}
        \loves2{小猫1}{鱼2}
        ',
  groups: undefined
]

本来我是想匹配 这样的 love{}{}{}

我希望括号里面不要再有 { 或者 } 符号。

应该怎么写正则呢

(这个排版我反复编辑了四五次,实在调不好)


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

没有你想的那么复杂吧

let reg2=/\\[^{]*?({[^{
]*})+/

或者

let reg2=/\\[^{]*?{([^{
]*)}[^{]*?{([^{
]*)}[^{]*?$/

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...