+ -
当前位置:首页 → 问答吧 → 这个正则怎么写?

这个正则怎么写?

时间:2011-03-27

来源:互联网



[email protected]后面的ip地址去掉,得到user.

$line = [email protected];

为什么下面都失败呢?

$line =~  s/@\d+\.\d+\.\d+\.\d+//g;

$line =~ s/\@\d{2}\.0\.0\.1//g;

$line =~ s/@[0-9]0-9]\.0\.0\.1//g;

$line =~ s/\@[0-9]0-9]\.0\.0\.1//g;

作者: linfengfeiye   发布时间: 2011-03-27

try:


s/@\d+(.\d+){3}//g

作者: yinyuemi   发布时间: 2011-03-27

回复 yinyuemi
  1. #!/usr/bin/perl
  2. #use Data::Dumper;
  3. my $line="[email protected]";
  4. $line =~ s/@\d+(.\d+){3}//g;
  5. print $line;
复制代码
我得到的是
[root@localhost ~]# ./test.pl
abc.0.0.27[root@localhost ~]#

有问题吗?

作者: linfengfeiye   发布时间: 2011-03-27

回复 linfengfeiye


    my $line="abc\@10.0.0.27";

作者: yinyuemi   发布时间: 2011-03-27

回复 yinyuemi


    原来这样,那如果我是从文本中某个字段得到的的这个字符赋值给line的时候,

    这个line的内容会是\@吗?如果不是,要怎么写呢?

作者: linfengfeiye   发布时间: 2011-03-27

回复 linfengfeiye


这个就不会了;也许可以做个替换@成\@

作者: yinyuemi   发布时间: 2011-03-27

回复 yinyuemi


    我验证了一下,的确可以先替换再用刚才的那个。

作者: linfengfeiye   发布时间: 2011-03-27