Perl字符串解析与正则表达式

时间:2014-04-09 17:57:21

标签: regex perl

我有一个格式为"501h-1-c2950-0a1 blah blah blah 501h-1-c2950-01.yahoo.com 501h-1-c2950-01.blog.com %%%501h-1-c2950-0a1 blah blah _____501h-1-c2950-01 501h-1-c2950-01"的字符串。

由此我想分别提取501h-1-c2950-01501h-1-c2950-01.yahoo.com部分。

这意味着如果我使用字母数字后跟' - ',我会提取它们。如果后面跟着[DOT][anything][DOT][anything],我会提取它们。

所以我的最终输出将有

501h-1-c2950-0a1,501h-1-c2950-01.yahoo.com,501h-1-c2950-01.blog.com,501h-1-c2950-0a1,501h-1-c2950-01,501h-1-c2950-01

我尝试了很多正则表达式而没有做到。有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

试试这个,$s是你的输入字符串:

my @arr = $s =~ /([a-zA-Z0-9.-]+-[a-zA-Z0-9.-]+)/g;

这里,正则表达式检查强制性连字符-是否在字母数字,点,连字符序列之间。