开发者社区> 问答> 正文

正则 零宽断言位置怎么确定啊?

已解决

测试文本: pre-xxx

表达式 (?<=pre-)\w* 的匹配结果是xxx ,这个是正常的。

表达式 \w*(?<=pre-) 的匹配结果存在(注意并没有匹配失败),匹配到了一个空的字符串 , 也就是说我把一个后向断言放在表达式的右边,该怎么解释这种结果呢?这个空的字符串是怎么匹配到的?

展开
收起
一个臻吖 2022-04-01 20:33:17 488 0
1 条回答
写回答
取消 提交回答
  • 推荐回答

    正则断言不占用字符串的位置

    (?<=pre-)\w即以pre-开头, 但是不包含pre-, 的\w的字符串

    \w*(?<=pre-)即以\w*开头,并且以pre-结尾的字符串. 因为加的是0到n个,所以能匹配到,如果改成\w+(?<=pre-)就无法匹配. 因为改过的表达式的含义是这个字

    符串只能以\w组成,又以-结尾,相互产生矛盾

    2022-04-01 20:34:26
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载