2013-01-18 97 views
0

我想匹配行看起来像这样如何匹配一个新行perl的

(white space)ERROR(some text)(new line) 
    (some text) 

我曾尝试是这样的正则表达式,而不是工作

if (/\sERROR(.*)(\n.*)/){ 
    } 
+0

换行符终止一行,您匹配的是一个__string__,它由两个__lines__组成。 – sds

回答

1

打印$_之前if

  1. 你确定你的字符串,其空白开始?如果不是,则需要\s*而不是\s

  2. 嵌入换行符很少见,你确定你确实在那里有吗?如果是,则在最后的/后需要s修饰符。

如果一切都失败,请阅读the manual

+0

Hi @sds是的,它是在字符串开头的单个空间,是的他们嵌入换行符。 – TheBlackCorsair

+0

@TheBlackCorsair:那么你需要'''在最后一个'/' – sds

+0

之后工作,谢谢你的帮助@sds – TheBlackCorsair

1

使用/s修改:/\sERROR(.*)(\n.*)/s。并注意您的贪心(.*)