如何使用正则表达式提取数字中的单个数字

时间:2010-08-02 13:08:20

标签: regex tcl

set phoneNumber 1234567890

这个数字的单个数字,我想用regexp将这个数字分成123 456 7890。不使用拆分功能有可能吗?

2 个答案:

答案 0 :(得分:7)

以下代码段:

regexp {(\d{3})(\d{3})(\d{4})} "8144658695" -> areacode first second

puts "($areacode) $first-$second"

打印(as seen on ideone.com):

(814) 465-8695

这会在模式中使用捕获组,并使用subMatchVar...替换Tcl regexp

参考


关于模式

正则表达式模式是:

(\d{3})(\d{3})(\d{4})
\_____/\_____/\_____/
   1      2      3

它有3个捕获组(…)\d是数字字符类的简写。此上下文中的{3}是“正好重复3次”。

参考

答案 1 :(得分:0)

my($number) = "8144658695";

$number =~ m/(\d\d\d)(\d\d\d)(\d\d\d\d)/;

my $num1 = $1;
my $num2 = $2;
my $num3 = $3;

print $num1 . "\n";
print $num2 . "\n"; 
print $num3 . "\n";  

这是为Perl编写的,并假设数字是您指定的确切格式,希望这会有所帮助。

此网站可能会帮助您使用正则表达式 http://www.troubleshooters.com/codecorn/littperl/perlreg.htm