我想在文件中多次检索一个落在两个指定字符串之间的字符串
我尝试了这个,但这不起作用
/(?m)"String 1"!.*?"String2":/;
我希望每件事都落在“String 1”和“String 2”之间
请帮忙
答案 0 :(得分:7)
假设您的输入字符串是这样的
$str='String 1GIANT FISHString 2'
这将起作用
($wanted)= $str =~ /String 1(.*)String 2/
$wanted
现在是“GIANT FISH”
dah..multiline in a file ... edit up up
好的多线,假设输入
String 1Line oneString 2
String 1GIANT FISHString 2
String 1String2
这将获得所有字符串
(@wanted)= $str =~ /String 1(.*)String 2/g
@wanted有三个条目
('Line one','GIANT FISH','')
在第二个正则表达式中,g for global查找字符串
中的所有匹配项答案 1 :(得分:0)
以下将做:
perl -lne 'push @a,/string(.*?)string/g;END{print "@a"}'
这两个字符串是 string 和 string ,它们之间的任何东西都将作为数组元素进行处理。下面是我为此目的测试的示例。无论如何都可以改变你需要的两个字符串。
测试:
> cat temp
string123stringstring234string
string456stringstring789string
> perl -lne 'push @a,/string(.*?)string/g;END{print "@a"}' temp
123 234 456 789