加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl – 如何通过模式匹配提取单词?

发布时间:2020-12-15 23:35:34 所属栏目:大数据 来源:网络整理
导读:#!/usr/bin/perluse strict;use warnings;my $string = "praveen is a good boy";my @try = split(/([a,e,i,o,u]).*1/,$string);print "@tryn"; 我试图在给定的字符串中打印包含2个相邻元音的所有单词. o / p:必须是“praveen”和“good”. 我尝试使用否
#!/usr/bin/perl

use strict;
use warnings;
my $string = "praveen is a good boy";
my @try = split(/([a,e,i,o,u]).*1/,$string);
print "@tryn";

我试图在给定的字符串中打印包含2个相邻元音的所有单词.
o / p:必须是“praveen”和“good”.

我尝试使用否定exp [^]来分割并仅给出2个相邻的元音.

解决方法

Perl函数拆分不适合查找匹配列表.相反,我建议使用正则表达式修饰符g.要处理所有匹配项,您可以循环使用例如虽然,或者您可以一次性分配匹配列表.

以下示例应匹配包含两个相邻元音的字符串中的所有单词:

my $string = "praveen is a good boy"; 
while ( $string =~ /(w*[aeiou]{2}w*)/g ) { 
  print "$1n" 
}

输出:

praveen
good

你也可以这样做:

my @matches = ( $string =~ /w*[aeiou]{2}w*/g );

并处理结果类似于您在OP中处理@try的方式.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读