Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript正则表达式解析.gitmodules文件以获取分支、路径和url_Javascript_Regex_Github - Fatal编程技术网

使用javascript正则表达式解析.gitmodules文件以获取分支、路径和url

使用javascript正则表达式解析.gitmodules文件以获取分支、路径和url,javascript,regex,github,Javascript,Regex,Github,我想使用javascript正则表达式解析.gitmodules文件以获得分支、路径和url的详细信息 .git模块 [submodule "PATH"] path = <PATH> url = <URL> [submodule "PATH"] path = <PATH> url = <URL> branch = <BRANCH> [子模块“路径”] 路径= url= [子模块“

我想使用javascript正则表达式解析.gitmodules文件以获得分支、路径和url的详细信息

.git模块

 [submodule "PATH"]
     path = <PATH>
     url = <URL> 
 [submodule "PATH"]
     path = <PATH>
     url = <URL>
     branch = <BRANCH>
[子模块“路径”]
路径=
url=
[子模块“路径”]
路径=
url=
分支=

这是我计算出来的代码

    parseGitModules: function (data, callback) {
        var gitModules = data.split("["),
            subModulesCollections = [];

        _.each(gitModules, function (submodules) {
            if (/^submodule*/.test(submodules)) {
                var submodule = submodules.split("\n\t"),
                    moduleDetails = {};

                _.each(submodule, function (sub) {
                    var parseSubmoduleDetails = [],

                    sub = sub.replace(/\n/g,'').replace(/\s/g,'').replace(/\"/g,'=');
                    parseSubmoduleDetails = sub.split("=");

                    switch(parseSubmoduleDetails[0]) {
                        case "submodule":
                            moduleDetails.submodule = parseSubmoduleDetails[1];
                            break;
                        case "path":
                            moduleDetails.path = parseSubmoduleDetails[1];
                            break;
                        case "branch":
                            moduleDetails.branch = parseSubmoduleDetails[1];
                            break;
                        case "url":
                            moduleDetails.url = parseSubmoduleDetails[1];
                            break;
                    };
                });

                subModulesCollections.push(moduleDetails);
            }
        });

        callback(null, subModulesCollections);
    }