2009-08-17 8 views
0

こんにちは私はクラス定義からパラメータを抽出しようとしています。AS3の引数とRubyのマッチングRegEx

class locale.company.app.LoginData(username:String, password:String) 

パッケージ名とクラス名が抽出されましたが、パラメータによって問題が発生しています。

私は、次の正規表現を構築するためにRubularを使用:Rubularによると、これは動作するはず

http://www.rubular.com/regexes/9597

しかし、それは唯一の最初のパラメータに一致するとして、それは、ありません。 だから私が代わりにこの正規表現を試してみました:

classDescription = "class locale.company.app.LoginData(username:String, password:String)" 
fieldMatches = classDescription.match(/(((\w+\s*):(\s*\w+))(\s*,\s*)?)+/) 

私は次のコードを使用してマッチプリントアウト:

fieldMatches.to_a.each {|m| puts m} 

をそして、私はこの結果を得る:これは、一致さ

username:String, password:String 
password:String 
password:String 
password 
String 
, 

何らかの理由で2番目のパラメータ。 誰かがパラメータを抽出する方法を知っていますか?

classDescription = "class locale.company.app.LoginData(username:String, password:String)" 
fieldMatches = classDescription.scan(/(\w+\s*):(\s*\w+)/) 
fieldMatches.each {|m| puts m} 

います:

答えて

0

私はあなたではなく、「一致」よりも、「スキャン」を使用したいと思います

username 
String 
password 
String 
+0

を優れたおかげでマーティン、私は欲張り法でなければならなかったが知っていました。再度、感謝します –

関連する問題