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

正则表达式捕获特定单词之间的单词

发布时间:2020-12-14 05:48:25 所属栏目:百科 来源:网络整理
导读:我正在尝试获得匹配的正则表达式:(它不应该匹配任何其他字符串) Word1 or Word2 or Word3 or Wordn 在“或”之前或之后捕获单词 1: Word12: Word23: Word3n: Wordn 我试过修改csv正则表达式: (?:^|,)("(?:[^"]+|"")*"|[^,]*) 至 (?:^|(?:or)((?:[^(?:o
我正在尝试获得匹配的正则表达式:(它不应该匹配任何其他字符串)

Word1 or Word2 or Word3 or Wordn

在“或”之前或之后捕获单词

1: Word1
2: Word2
3: Word3
n: Wordn

我试过修改csv正则表达式:

(?:^|,)("(?:[^"]+|"")*"|[^,]*)

(?:^|(?:or)((?:[^(?:or)]+)*|[^(?:or)]*)

但这并没有给我我想要的东西.

我确定我错过了一些东西,但我已经敲了几个小时.

解决方法

怎么样:

my $string = "  foo or    bar or  foobar ";
if ( $string =~ m|^s*[^s]+(s+ors+[^s]+)+s*$| ) {
    my $tmp = "$string";
    $tmp =~ s|^s+||;
    $tmp =~ s|s+$||;
    my @words = split( /s+ors+/,$tmp );
    printf( "Found %d words:n",scalar( @words ) );
    foreach my $word ( @words ) {
        print( "t'$word'n" );
    }
} else {
    print( "No matchn" );
}

以上将输出:

Found 3 words:
    'foo'
    'bar'
    'foobar'

(编辑:李大同)

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

    推荐文章
      热点阅读