与特定模式匹配的正则表达式

时间:2012-12-06 18:53:03

标签: regex perl

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

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

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

我尝试过的可能方法是:

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

他们帮助我找出一个表达式来匹配这种模式,但不能得到所需的输出。

3 个答案:

答案 0 :(得分:2)

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

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

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

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

/people .* -->/s

答案 1 :(得分:0)

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

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

这将打印:

' for
something...'

答案 2 :(得分:0)

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

if($sumthing =~ m/.*\n.*/)