明明白白正则表达式之零宽断言
之前没有理解透彻,借助
^
和$
理解一下,最近又自己测试了一下,终于是明白这个东西了
这篇文章看懂需要一部分正则的基础,我推荐这篇文章正则表达式30分钟入门教程
零宽断言
(?=exp)
这个和(?<=exp)
都可以看成一个输入文字时的一个光标,就像^
和$
一样匹配的是一个位置,(?=exp)
表示这个光标后面的内容是exp。同理,(?<=exp)
表示这个光标前面的内容是exp。把其中的<
看成一个箭头就很容易理解了。
比如这段文字中
正则表达式中的零宽断言不容易理解。负向零宽断言也是一样。
使用(?=断).
匹配的结果就是
断
断
使用(?<=断).
匹配的结果就是
言
言
理解上面这段话后,不难发现(?=断).
等同于断
,.(?<=断)
也等同于断
。
看成一个光标就十分帮助理解这个东西
负向零宽断言
同样负向零宽断言也可以这样理解
(?!exp)
光标后面的位置不是exp(?<!exp)
光标前面的位置不是exp
测试文本
一二三
(?!二).
表示光标后面不是二
的字符,匹配结果:
一
三
(?<!二).
表示光标前面不是二
的字符匹配结果
一
二
本文来自博客园,作者:康舒服冰红茶,转载请注明原文链接:https://www.cnblogs.com/pong137/p/14720209.html
欢迎转载,但请注明「作者」和「原文地址」。转载请在文中保留此段,感谢您对作者版权的尊重。如需商业转载或刊登,请联系作者获得授权。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?