perl:提取特定字符串之间的子字符串

时间:2014-03-14 11:18:26

标签: perl operators substring

(看着其他类似的问题和答案并受到恐吓 - 因此,如果这是一个多余的和/或过于简单的问题,请问你的原谅。)

需要提取运算符所包含的子字符串,例如<begin><end>

示例:

Irrelevant text is here <begin>the substring I am looking for<end> other irrelevant text

为了简单起见,如果有几个匹配,我只需要第一个匹配。

P.S。我提取的字符串是23:59:59;00形式的时间,然后我需要将其与系统时间进行比较,如果不匹配超过一分钟,则生成警报,计算结束时间(例如上述时间)足够接近00:00:15;45,不应该是一个例外。但我想这应该是一个单独的问题?

2 个答案:

答案 0 :(得分:4)

my $text = "Irrelevant text is here <begin>the substring I am looking for<end> other irrelevant text";

my ($string) = $text =~ /<begin>(.*?)<end>/ or warn "Pattern did not match";

答案 1 :(得分:1)

my $text = "Irrelevant text is here <begin>the substring I am looking for<end> other irrelevant text";

my $string = $& if $text =~ /<begin>\K.*?(?=<end>)/;