1

我想在 Perl 中找到一个匹配如下模式的正则表达式:

my $sumthing = "people say
for -->";

在这里之后say有一个换行符。所以我需要找到一个正则表达式,它可以匹配这样一个在模式中包含换行符的模式。请帮我找到这个,因为我是 Perl 和正则表达式的新手。

我尝试过的可能方法是:

if (($sumthing !~ (/\n+$/)) && ($sumthing !~ (/^\n+/m)))

他们很乐意帮助我找到一个匹配这种模式的表达式,但没有得到想要的输出。

4

3 回答 3

2

不清楚你想要什么。你想完全匹配那个字符串吗?如果是这样,你可以使用

$sumthing =~ /^people say\nfor -->\z/

或者

$sumthing eq "people say\nfor -->"

或者,也许您需要知道的是在使用.时匹配任何字符,包括换行符/s

/people .* -->/s
于 2012-12-06T19:04:01.683 回答
0

查看/s导致.匹配任何内容的修饰符,包括换行符。

my $str = "people say for\nsomething...";
$str =~ m{say(.*)}s and print "'$1'\n";

这将打印:

' for
something...'
于 2012-12-06T19:01:49.713 回答
0

以下将检查任何内容,然后是新行,然后是任何内容。不确定我是否完全理解你的问题。

if($sumthing =~ m/.*\n.*/)
于 2012-12-06T19:09:19.110 回答