正则的正向前瞻断言和负向前瞻断言

179 阅读2分钟

正则的正向前瞻断言和负向前瞻断言

这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。

作者:神的孩子都在歌唱

正向前瞻断言和负向前瞻断言是正则表达式中用于检查后续字符的两种零宽断言。它们的主要区别在于条件满足时是否匹配成功。

一. 正向前瞻断言

正向前瞻断言用于检查某一位置之后的字符是否符合特定模式。如果符合条件,则匹配成功;如果不符合条件,则匹配失败。正向前瞻断言的语法是 (?=...)

示例

正则表达式 abc(?=123)

  • abc: 匹配字符串 "abc"
  • (?=123): 正向前瞻断言,检查后面是否是 "123"

在字符串 "abc123" 中,"abc" 后面确实是 "123",因此匹配成功。

在字符串 "abc456" 中,"abc" 后面不是 "123",因此匹配失败。

image-20240923161858430

二. 负向前瞻断言

负向前瞻断言用于检查某一位置之后的字符是否不符合特定模式。如果不符合条件,则匹配成功;如果符合条件,则匹配失败。负向前瞻断言的语法是 (?!...)

示例

正则表达式 abc(?!123)

  • abc: 匹配字符串 "abc"
  • (?!123): 负向前瞻断言,检查后面是否不是 "123"

在字符串 "abc123" 中,"abc" 后面是 "123",因此匹配失败。

在字符串 "abc456" 中,"abc" 后面是 456,因此匹配成功。

image-20240923162809859

三. 总结

  • 正向前瞻断言 (?=...) :用于确保某一位置之后的字符符合特定模式。
  • 负向前瞻断言 (?!...) :用于确保某一位置之后的字符不符合特定模式。

作者:神的孩子都在歌唱

本人博客:blog.csdn.net/weixin_4665…

转载说明:务必注明来源,附带本人博客连接。