使用Ruby RegEx匹配AS3参数

时间:2009-08-17 09:27:32

标签: ruby regex

您好我正在尝试从类定义中提取参数。

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

我已经提取了包名和类名,但这些参数给我带来了一些麻烦。

我使用Rubular来构造以下正则表达式:

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

根据Rubular,这应该可行,但它没有,因为它只匹配第一个参数。 所以我尝试了这个正则表达式:

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
, 

由于某种原因,这仅匹配第二个参数。 有没有人知道提取参数的方法?

1 个答案:

答案 0 :(得分:0)

我认为你想使用“扫描”而不是“匹配”:

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

给出:

username
String
password
String