使用正则表达式时,发现匹配都会从以匹配到的词的下一个词开始,请问要怎么让他依照字串index顺序去找查?比如: "SegmentFault是一个好论坛"我写正则表达式: [x{4e00}-x{9fa5}]{2}可以匹配到 : "是一" "个好" "论坛"但我今天想匹配到 : "是一" "一个" "个好" "好论" "论坛"请问用什麽方法可以实现?
2 回答
饮歌长啸
TA贡献1951条经验 获得超3个赞
不同语言有不同处理方式,在 JavaScript 中,全局匹配的正则会有个 lastIndex
属性可以调整下次匹配的开始位置。
const str = "SegmentFault是一个好论坛"const matcher = /[\u4e00-\u9fa5]{2}/gconst result = []while (true) { const m = matcher.exec(str) if (!m) { break } result.push(m[0]) matcher.lastIndex = matcher.lastIndex - m[0].length + 1}console.log(result)
- 2 回答
- 0 关注
- 284 浏览
添加回答
举报
0/150
提交
取消