Regex Perl正则表达式删除字符串中的双字符而不是双数字

Regex Perl正则表达式删除字符串中的双字符而不是双数字,regex,perl,Regex,Perl,我正在使用Perl RegExp,它试图删除双字符和双数字。 但是,我只想删除两个字符,并在同一字符串中保留两个数字 虽然有几个示例显示如何删除双字符,但没有任何示例显示如何删除双字符并在字符串中保留双数字 我的代码: #! /usr/bin/perl use v5.10.0; use warnings; my $double = "AAPPLES112233"; $double =~ s/(.)\1/$1/gi; say $double; 我的代码输出APLES123。但是,目标是输出AP

我正在使用Perl RegExp,它试图删除双字符和双数字。 但是,我只想删除两个字符,并在同一字符串中保留两个数字

虽然有几个示例显示如何删除双字符,但没有任何示例显示如何删除双字符并在字符串中保留双数字

我的代码:

#! /usr/bin/perl
use v5.10.0;
use warnings;

my $double = "AAPPLES112233";
$double =~ s/(.)\1/$1/gi;
say $double;

我的代码输出APLES123。但是,目标是输出APLES112233,消除双字符,同时将双数字保留在同一字符串中。

不要使用几乎匹配任何字符(包括字母和数字)的
,而是使用
[a-z]
只匹配字母字符:

$double =~ s/([a-z])\1/$1/gi;

伟大的谢谢@CertainPerformance。
A-z
包含六个可能不需要的字符。这还包括其他字符,如[A-z]范围内的
\u
。既然您忽略了案例,即使用
i
为什么不使用
A-Z
?@revo,那么您在引用中给出的答案在Perl中是错误的,因为它只是一个匹配运算符。调整起来很简单,但对于那些需要这个问题的人来说可能不是。@zdim OP只需要将正则表达式复制到相应的模式空间中。问题不应该是完全重复的,这个问题以前被问过很多次。如果你有更好的傻瓜,请告诉我。我将添加@revo Yes和Yes;这些评论照顾到了(我)的痛处。对于刚接触regex(以及使用不同工具)的人,只需一提。