【发布时间】:2014-11-12 02:26:47
【问题描述】:
我在下面有这个字符串:
"\n - MyLibrary1 (from ‘repo_name’, branch ‘master’)\n - AFNetworking (= 1.1.0)\n - MyLibrary2 (from ‘repo_name’, branch ‘master’)\n - Objective-C-HMTL-Parser (= 0.0.1)\n\n"
我希望从中提取数据并创建一个如下所示的 JSON:
{
"MyLibrary1": “master”,
"AFNetworking": "1.1.0",
"MyLibrary2": “master”,
"Objective-C-HMTL-Parser": "0.0.1"
}
在我之前的帖子 (Regex for huge string) 的帮助下,我能够获取字符串中 '=' 之后的数据。
我正在修改相同的正则表达式以获得“master”这个词。无论我尝试什么,在我的匹配对象中,第一部分是“MyLibrary1”,第二部分是“来自‘repo_name’,分支‘master’”。
问题: 正则表达式可以包含单词吗?我可以添加单词“branch”以从字符串中删除单词“master”吗?
我试过的正则表达式 - -\s*(.?)\s(\s*(.?)\s)
Rubular 链接 - http://rubular.com/r/gPLIa0xqRC
【问题讨论】:
-
当然你可以通过修改正则表达式来做到这一点。但是,在此修改之后,表格将几乎被设置,因此没有太多空间可以进行更多添加。在这种情况下,您需要捕获括号内的内容并单独解析。
-
是的,我实际上在考虑使用 2 个正则表达式,一个用于获取 '=' 之后的值,另一个用于获取 'from' 之后的值。但是下面有 hwnd 的回答,看起来可以使用一个正则表达式来实现。但是,如果我尝试在其中添加更多内容,我的正则表达式肯定会过载并且会开始变得复杂。