2013-10-09 25 views
1

匹配線的其餘部分我需要寫一個Ruby的正則表達式,將符合下列條件:紅寶石正則表達式,在評論

# @name 'foo' 
# @name 'foo' 
# @name foo 

foo

它應該基本上查找包含註釋掉的每一行@name並獲取它後面的字符串。

+0

以及如何做你寫的代碼去了解這一點,又是如何得出它不工作? –

回答

1

您可以使用它。

line.match(/^\#\[email protected]\s+["']?(.*?)["']?$/) 

Rubular

+1

這個工作正常!任何方式使它與'''一起工作,而不僅僅是''' – alt

+0

更新與修正。 – hwnd

+0

這個工作適合你嗎? – hwnd

2

簡單的版本是:

line.match(/^\s*\#\s*@name\s+(.*)/) 

更復雜的版本將佔'

line.match(/^\s*\#\s*@name\s+\'?([^']*?)\'?/) 

此不考慮像'foo\'s'轉義字符。

+0

這很接近,但匹配任何行的開始。任何方式使它停在新的線? – alt

+0

進一步:簡單的版本工作正常,複雜的版本抓住下面的行,直到'''在下一行 – alt

+0

我已經使用'[^'] *?'而不是'[^']來減少貪婪bu *'。我以爲你會一行一行地處理它,在這種情況下,原件應該工作。 – tadman