【正则表达式】通俗易懂——正则表达式的零宽断言:?=、?<=、?!、?<! 的具体使用区别

ps:想吐槽一下,什么前瞻,后顾,负前瞻,负后顾,小白就想简单了解会用而已,为啥网上很多明明很简单的东西非得写的那么…举的例子也那么…,对小白一点也不友好~

一、个人理解:

1、将 < 看成方向,包含这个箭头说明是放在要去匹配的目标内容的左边(来开头);
2、把 ?! 看成 ?!= 就好了
3、一定要记住:匹配得到的结果并不包含 ?=、?<=、?!和?


二、?=、?<=、?!、?

【1】?= : 询问要去匹配的目标的后面跟着的东西是否等于这个

eg: ^b(?=a)$ —— ba

【2】?<= : 询问要去匹配的目标是否以这个东西开头

eg: ^(?<=a)b$ —— ab

【3】?! : 询问要去匹配的目标后面跟着的东西是否 不是这个

eg:^b(?!a)$ —— bb

【4】?

eg:^(?


贴一个官方的例子:

?= exp1(?=exp2): 查找在 exp2 前面的 exp1。
?<= (?<=exp2)exp1: 查找在 exp2 后面的 exp1。
?! exp1(?!exp2): 查找后面不是 exp2 的 exp1。
?

你可能感兴趣的:(java后端,正则表达式,java)