如何使用regexp提取数字中的单个数字

如何使用regexp提取数字中的单个数字,regex,tcl,Regex,Tcl,这个数字是一位数,我想用regexp把这个数字分成1234567890。不使用拆分功能是否可能 set phoneNumber 1234567890 这是为Perl编写的,假设数字的格式与您指定的格式完全相同,希望这对您有所帮助 此站点可能会帮助您使用regex 以下代码片段: my($number) = "8144658695"; $number =~ m/(\d\d\d)(\d\d\d)(\d\d\d\d)/; my $num1 = $1; my $num2 = $2; my $num

这个数字是一位数,我想用regexp把这个数字分成1234567890。不使用拆分功能是否可能

set phoneNumber 1234567890
这是为Perl编写的,假设数字的格式与您指定的格式完全相同,希望这对您有所帮助

此站点可能会帮助您使用regex 以下代码片段:

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";  
印刷品():

这将使用模式中的捕获组和Tcl
regexp的
subMatchVar…

工具书类

论模式 正则表达式模式是:

(814) 465-8695
它有3个捕获组
(…)
\d
是数字字符类的缩写。在这个上下文中,
{3}
是“正好3次重复”

工具书类
  • ,

为什么要使用regex?我最近对我的锤子有点怀疑。我有一个螺丝,我想用锤子拧进去,不用螺丝刀。有可能吗?«这又是关于一位数的什么?看起来你想要分组为3-4-4,而不是单个数字。@Johannes这是可能的-只要继续点击。。。只要你以后不用把它拿出来,谁在乎呢……)oops lol,今天做得不好,将检查它在TCL中是否也能工作。然后,使用Perl,在开始使用$1、$2等之前,您应该检查匹配是否确实成功。请减少建议
->
变量名的向下投票。我认为这是一份官方权威的惯用Tcl文档。同样,这是CW(出于某种原因?),所以可以随意编辑和改进。使用“->”伪变量名对于regexp来说相当常见,因为它1)表明您没有使用这些信息,2)看起来很不错(即,有点像“进入”)。+1作为答案,在哪里可以获得更多的信息和解释的答案,按顺序。如果可以的话,我会给另一个+1的格式和简洁,清晰的语言;如果你使用的是国际电话号码,那么在国家一级,你分组的方式会有所不同。事实上,也低于这个水平(例如,英国只有陆地线路的区号,而不是手机号码,前缀号码决定了以下号码的结构;区号长度可变)。@polygen谢谢,我从中得到了示例,我使用singel regexp尝试了正则表达式的解决方案
(814) 465-8695
(\d{3})(\d{3})(\d{4})
\_____/\_____/\_____/
   1      2      3