正则表达式搜索所有出现的字符串

时间:2011-12-12 11:18:45

标签: regex

如何使用正则表达式从文本中提取所有出现的字符串?

我的情况是:

输入文字:i:0#.f|ldapmember|tom;i:0#.f|ldaprole|peter;i:0#.f|ldapmember|mary;

使用连续字符提取所有出现的i:0#.f|ldapmember|,直到;

搜索结果为:i:0#.f|ldapmember|tom;i:0#.f|ldapmember|mary;

2 个答案:

答案 0 :(得分:1)

这应该这样做,LDAP成员名称的捕获在组1中:

i:0\#\.f\|ldapmember\|([^;]*);

答案 1 :(得分:1)

以下是一种Perl方法:

#!/usr/bin/perl
use Modern::Perl;

my $str = 'i:0#.f|ldapmember|tom;i:0#.f|ldaprole|peter;i:0#.f|ldapmember|mary;';
my @occ = $str =~ /(i:0#\.f\|ldapmember\|[^;]+)/g;
say join('',@occ);

<强>输出:

i:0#.f|ldapmember|tomi:0#.f|ldapmember|mary