求一个正则匹配的问题

let str ='sss.bbb["sdfsdf"][0].fff'

let result = str.match(/\[(.*?)]/g)  //能匹配到符合[]的所有内容
//我能找到["sdfsdf"]和[0]


//我想也找到sss.bbb和.fff怎么办
//下面方法好像比较笨,有没有更加简单的方法呢?
let result2 = str.match(/(^(.*?)\[|](.*?)\[|(\](.*?)$))/g)

4.14
补充一下,上面描述的确实不够清晰
我想把字符串 'sss.bbb"sdfsdf".fff'
里面的sss / bbb sdfsdf 0 fff 找出来 (按. 分割,也需要查找[]里面的内容)
能否用一个正则表达式就能找到呢?或者尽量少的正则

阅读 1.4k
1 个回答

没看明白你到底什么规则,就你上面这个结果,split就行了

// => ["sss.bbb", "sdfsdf", ".fff"]
'sss.bbb"sdfsdf".fff'.split('"')

正则的话

// => ["sss.bbb", "sdfsdf", ".fff"]
'sss.bbb"sdfsdf".fff'.match(/([^"]+?)(?="|$)/g)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题