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

前端之家收集整理的这篇文章主要介绍了perl – 如何通过模式匹配提取单词?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
#!/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 "@try\n";

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

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

解决方法

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

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

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

输出

praveen
good

你也可以这样做:

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

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

猜你在找的Perl相关文章