为了账号安全,请及时绑定邮箱和手机立即绑定

正则表达式,要怎麽从下一个字开始匹配,而不是从下一个词?

正则表达式,要怎麽从下一个字开始匹配,而不是从下一个词?

动漫人物 2018-07-22 07:17:39
使用正则表达式时,发现匹配都会从以匹配到的词的下一个词开始,请问要怎么让他依照字串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)


查看完整回答
反对 回复 2018-07-22
  • 2 回答
  • 0 关注
  • 284 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信