Ruby regexp来解析命令行

时间:2010-06-02 15:56:29

标签: ruby regex

如何像许多命令行实用程序一样解析ruby中的字符串?我有类似于"command [--opt1=...] [--enable-opt2] --opt3=... arg1"的字符串和类似于command(opt1,opt2,opt3,arg1...)的方法。我想让参数按随机顺序排列,其中一些可以是可选的。

目前,每次我需要解析新命令时,我都会使用regexp,例如 解析“lastpost --chan = your_CHANNEL / section /”

我有这个正则表达式:

    text = "lastpost --chan=0chan.ru /s/"
    command = (text.match /^\w+/)[0]
    args = text.gsub(/^\w+/,'')
    if args =~ /[[:blank:]]*(--chan\=([[:graph:]]+)[[:blank:]]+)*\/?(\w+)\/?/
        chan = $2
        section = $3
        do_command(chan,section)
    else
        puts "wrong args"
    end

我希望我有create_regexp(opts,args),它应该生成正则表达式。

1 个答案:

答案 0 :(得分:1)

好的,我发现optparse可以为我做这件事