您好我正在尝试从类定义中提取参数。
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
,
由于某种原因,这仅匹配第二个参数。 有没有人知道提取参数的方法?
答案 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