2 bhzj52 bhzj52 于 2014.09.13 13:26 提问

正则表达式零宽断言问题

“\b\w*(?=q)\w*\b”怎么匹配abdlqdjfa是全部的?“\b\w*(?<=q)\w*\b”匹配也是得到全部!用的Regex Match Tracer!到底哪里错了啊!?百思不得其解!
还有,"\b(?=q)\w*\b"怎么匹配不了"abqdldjfa"?q不是在中间吗?"\w*",不是q的右边有字符吗?怎么不能匹配?

2个回答

solief
solief   2014.09.15 23:25

\b[a-z]\w*\b

q107770540
q107770540   Ds   Rxr 2014.11.18 15:04

\b\w*(?=q) 匹配q之前的字符串
(?<=q)\w* 匹配q之后的字符串

你写的正则 “\b\w*(?=q)\w*\b” “\b\w*(?<=q)\w*\b” 当然匹配全部,他们的效果赞同于 \b\w*\b

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
正则表达式之零宽断言详解
什么是零宽断言;正向先行断言;反向先行断言;正向后发断言;反向后发断言;
python正则表达式系列(5)——零宽断言
本文主要总结了python正则零宽断言(zero-length-assertion)的一些常用用法。
教你怎么理解正则表达式之零宽断言(环视)
思考题 今天有人问一个关于零宽断言的正则: var reg = /(?=a)b/; reg.exec("ab"); 大家思考下这个正则为什么匹配不了?我们先了解一下什么叫零宽断言,最后再来回答这个问题。 概念理解 零宽断言(有的资料叫它环视),分为零宽度正预测先行断言( 格式为 (?=exp) ),和 零宽度正回顾后发断言( 格式为 (? 我们先从字面上来理解下。零宽度,说明它是不
Java正则表达式 预搜索(零宽断言)详解(精)
查看原文:http://ibloger.net/article/31.html零宽断言的意思是(匹配宽度为零,满足一定的条件/断言) 我也不知道这个词语是那个王八蛋发明的,简直是太拗口了。 零宽断言用于查找在某些内容(但并不包括这些内容)之前或之后的东西,也就是说它们像 \b ^ $ \< \> 这样的锚定作用,仅仅用于指定一个位置,不参与内容匹配,这个位置应该满足一定的条件(即断言),因此它们也被
对正则表达式零宽断言的个人理解(Java测试下)
零宽断言主要有4种形式:正预测零宽断言(?=),负预测零宽断言(?!),正回顾零宽断言(?(翻译可能不准确) 可以看出主要分为正向负向和预测回顾的各种组合 所谓正向,指的是匹配表达式,负向则指不匹配(他们最主要的区别就是=和!) 所谓预测指的是要匹配的后面部分,还没匹配到,但是预测可以匹配,回顾指已经匹配过的部分符合要求 零宽指的是这4种形式匹配的都只是位置,比如在某个位置符合后面满足某某
正则表达式零宽断言详解
1、地球人,是不是觉得这些术语名称太复杂,太难记了?我也和你一样。知道有这么一种东西就行了,它叫什么,随它去吧!“无名,万物之始...” 2、断言用来声明一个应该为真的事实。正则表达式中只有当断言为真时才会继续进行匹配。 接下来的四个用于查找在某些内容(但并不包括这些内容)之前或之后的东西,也就是说它们像\b,^,$那样用于指定一个位置,这个位置应该满足一定的条件(即断言),因此它们也被称
python正则表达式的零宽断言
零宽断言 零宽断言一共分为正向和反向两类,每类又分为预测先行和回顾后发两种:   ####零宽度正预测先行断言   简称正向先行断言,语法是(?=exp),它断言此位置的后面能匹配表达式exp。   ####零宽度正回顾后发断言   简称正向后发断言,语法是(?&amp;lt;=exp),它断言此位置的前面能匹配表达式exp。   ####零宽度负预测先行断言   简称反向先行断言,语法是(...
正则:零宽断言和负向零宽断言
http://deerchao.net/tutorials/regex/regex.htm#lookaround代码展现package test;import java.util.regex.Matcher; import java.util.regex.Pattern;public class RegexUtil { public static void main(String[] args
最近频繁用到正则表达式,恶补一下,高手略过(零宽断言)
精确地查找hi这个单词:\bhi\b 假如你要找的是hi后面不远处跟着一个Lucy,你应该用\bhi\b.*\bLucy\b。 匹配电话号码:   0\d{2}-\d{8}。这里\d后面的{2}({8})的意思是前面\d必须连续重复匹配2次(8次)。 \ba\w*\b匹配以字母a开头的单词——先是某个单词开始处(\b),然后是字母a,然后是任意数量的字母或数字(\w*),最后是单词结束处(\
Py正则表达式中的【零宽断言】
      说明:本文的例子使用python描述      首先说明一下什么是零宽断言,所谓零宽断言就是并不去真正的匹配字符串文本,而仅仅是匹配对应的位置。      正则表达式中有很多这样的断言,常见的如匹配字符串或者行的起始位置 ^ 和 /A,匹配字符串或者行的末尾 $ 和 /Z,单词边界/B等等。这些简单的就不说了,今天主要说一下界定的使用方法(有些资料叫环式结构,名字而已,不重要)。界定也