正则表达式找出连续的重复字符,包括特殊字符
正则表达式可以实现需要编写大量代码才能完成的功能,例如从一个字符串中找到连续的重复字符。
如果是使用代码来完成,需要逐字记录并找到重复,不同的语言实现的编码量有所不同,但相对来说依然是很大的工作量,如果使用正则表达式,一行搞定。
找到连续的英文字母
```
([a-zA-Z])\1+
```
这个正则表达式会匹配任何连续重复的字母,并将其替换为单个字母。在大多数正则表达式引擎中,可以使用 $1 来引用第一个捕获组,所以你可以将匹配的字符串替换为 $1。
找到连续的特殊字符
```
([\W])\1+
```
注意 \w 和 \W 的区别。
如果是找到连续3次或以上的连续字符
```
([\W])\1{2,}
```
如果要删除整行中的任何重复字符,而不仅仅是连续重复的字符
```
^(?=.*(.)).*\1.*$
```
这个正则表达式会匹配任何包含重复字符的行。它使用了正则表达式中的零宽度正向前查找,以查找行中的任何字符,并检查是否有相同的字符出现在后面的文本中。如果有,整行就会被匹配。
在使用正则表达式前,务必先进行测试。
我的笔记