在java正则表达式中捕获组

时间:2014-01-08 12:15:35

标签: java regex

我正在研究java正则表达式,但根据一些例子,我发现像下面这样的群体正在混淆。那么任何人都可以说明由

给出的正则表达式
(?<!\d) and (?!\d)

我明白了:

\d for digit
? for one or zero
! for not

上述群体意味着什么?请帮忙!

提前致谢。

2 个答案:

答案 0 :(得分:5)

表达式(?<!\d)(?!\d)是“负面看待”和“负向展望”。它们是负的零宽度断言,捕获组。

表达式(?<!\d)断言前一个字符一个数字 表达式(?!\d)断言下一个字符一个数字。

虽然他们看起来像组,但这只是使用括号的语法。

顺便提一下,它们可以表示为正面看(?<=^|\D)(?=\D|$)

答案 1 :(得分:0)

(?<!X):= X,通过零宽度负向后看

(?!X):= X,通过零宽度负前瞻

http://www.regular-expressions.info/lookaround.html