1) some text 2)
1. some text 2.
1) some text 2.
1. 2.10.10.20 some text 2.
1) 2.10.10.20 2)
我希望获得1)和2)之间的文本或1.或2.,
这是我写的
1[).](.*?)2[).]
所以这里的perl $ 1会给我两段文字,但这会在第三场比赛中失败(1. 2.10.10.20 some text 2.
)
也可以帮助我设置正则表达式。
答案 0 :(得分:2)
#!/usr/bin/env perl
use 5.012;
use strict;
use warnings;
while (my $line = <DATA>) {
if ($line =~ m{ 1[.)] \s (.+?) \s 2[.)] }x) {
say qq{'$1'};
}
}
__DATA__
1) some text 2)
1. some text 2.
1) some text 2.
1. 2.10.10.20 some text 2.
1) 2.10.10.20 2)
输出:
'some text' 'some text' 'some text' '2.10.10.20 some text' '2.10.10.20'
答案 1 :(得分:0)
让你的正则表达式贪婪:
m/1[).](.*)2[).]/
答案 2 :(得分:0)
我会写一些类似的东西:
$line=~/^1[).]\s?([^\s].*[^\s])\s?2[).]$/