2016-11-02 69 views
-1

我想寫這種正則表達式的工作:(這是我所目前) ($line是一個字符串)Perl的正則表達式不

$lhs = "E"; 
unless ($line =~ /^*\s\Q$lhs*\s[->]*\s\Q$lhs/) { 
... 
} 

在正則表達式,這是我找什麼:

在字符串的開頭,0或多個空格,然後$lhs後跟0或多個空格後面的字符->(可能是多次,如---->>>),其次是0或多個空格,然後是$lhs

它顯然不工作,但我怎麼能使它工作?

謝謝!

+3

'*'是一個修飾符,所以'^ *'沒有任何意義。 「零或更多的開始行」。 '\ s'是一個單獨的空間,不是「0或更多」。你想要'/^\ s * ...' –

+0

哦好吧。這是我需要寫的嗎? '/^\ s * \ Q $ lhs \ s * [ - >] \ s * \ Q $ lhs /'它不會給我像最後一個錯誤,但它也不起作用(根據我的口頭在原始文章中的描述) – Gambit2007

+0

\ Q是什麼意思?那從這一點關閉元字符轉發... –

回答

0

我發現我的答案是:

$line =~ /^\s*$lhs\s*[->]*\s*$lhs/ 

非常感謝馬克·B中的幫助!