我一直在尝试创建一个混淆了phonen umbers的正则表达式,但是有点麻烦。
假设我有像
这样的电话号码123-1231234
123 1231234
123-123 12 12
01555555
我想用X替换第一个数字 - 或者是空格,所以结果将是
123-XXXXXXX
123 XXXXXX
123-XXX XX XX
015XXXXXXX (if there's no whitespace or - then everything after 3rd digit).
但是在正则表现不佳并且奋斗很大的时候,我想出了这个表达式( - (\ d +))|(\ s(\ d +))但它只给出了像123X这样的结果
答案 0 :(得分:0)
/([0-9]{3})([0-9 -.]{3,})/g
我会匹配2个(前3个字符,然后是其余的数字),然后用你正在使用的任何语言的x替换后者。
答案 1 :(得分:0)
以下是在perl中执行此操作的方法:
use strict;
use warnings;
while(<DATA>) {
chomp;
my ($begin, $end) = $_ =~ /^(\d{3}-?)(.*)$/;
$end =~ s/\d/X/g;
print $begin . $end, "\n";
}
__DATA__
123-1231234
123 1231234
123-123 12 12
0155555555
<强>输出:强>
123-XXXXXXX
123 XXXXXXX
123-XXX XX XX
015XXXXXXX