加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式 – 正则表达式中的零宽度元素是什么?

发布时间:2020-12-14 05:59:31 所属栏目:百科 来源:网络整理
导读:最近,我在正则表达式中看到了“零宽度元素”.这些是什么?它们可以被视为鬼数据,因此替换时,它们不会被替换,并且对于()匹配,它们不会进入匹配[1],匹配[2]等? 有各种用途的好教程吗?他们在这儿待了很久吗?哪个版本的O’Reilly的正则表达书是第一个讨论它们
最近,我在正则表达式中看到了“零宽度元素”.这些是什么?它们可以被视为鬼数据,因此替换时,它们不会被替换,并且对于()匹配,它们不会进入匹配[1],匹配[2]等?

有各种用途的好教程吗?他们在这儿待了很久吗?哪个版本的O’Reilly的正则表达书是第一个讨论它们的?

解决方法

零宽度外观断言的一点是,它们检查某个正则表达式是否能够或者不能从当前位置向前或向后匹配,而不实际将它们添加到匹配中.所以,是的,它们不会计入捕获组,它们的匹配将不会被替换(因为它们首先不匹配).

但是,您可以在一个环绕声明中设置一个捕获组,它将进入匹配[1]等.

例如,在C#中:

Regex.Replace("ab","(a)(?=(b))","$1$2");

将返回abb.

一般来说,关于正则表达式的非常好的在线教程可以在http://www.regular-expressions.info找到(尽管在某些方面它有点过时).

它包含一个关于zero-width lookaround assertions(和Part II)的特定部分.

当然,它们在Mastering Regular Expressions和Regular Expressions Cookbook都有深入的介绍.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读