开发者社区 问答 正文

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

已解决

测试文本: pre-xxx

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

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

展开
收起
一个臻吖 2022-04-01 20:33:17 520 分享
分享
版权
举报
1 条回答
写回答
取消 提交回答
  • 推荐回答

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

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

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

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

    2022-04-01 20:34:26 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
问答地址:
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等