正则表达式捕获特定单词之间的单词
发布时间: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' (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |