使用regex perl提取两个单词之间的所有文本(包括空格和回车符)

时间:2019-02-14 14:38:39

标签: regex perl

my $example=<<EO_STR;

Start

text1 

text2 


text3 Text4

Text5 text6

text7

End

EO_STR

在以下示例中。我想提取开始和结束之间的所有文本(知道文本提取的文本包含空格和换行符,然后返回charriot)

我尝试了此方法,但是它不起作用:

$example=~m/start\s+(.*?)\s+end/i

2 个答案:

答案 0 :(得分:1)

行尾,即\n是空白,因此可以简单地写为

$example =~ /(?i:start)([\w\s]+)(?i:end)/

startend必须区分大小写吗?您的示例表明正则表达式可以简化为:

$example =~ /Start([\w\s]+)End/

答案 1 :(得分:0)

感谢大家,我设法找到了解决方法

$example=~m/start([a-zA-Z0-9\p{P}\p{S} \s]*)end/i;