1

我在下面有这个字符串:

"\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"
}

在我之前的帖子(大字符串的正则表达式)的帮助下,我能够获取字符串中 '=' 之后的数据。

我正在修改相同的正则表达式以获取“master”一词。无论我尝试什么,在我的匹配对象中,第一部分是“MyLibrary1”,第二部分是“来自'repo_name',分支'master'”。

问题:正则表达式可以包含单词吗?我可以添加单词“branch”以从字符串中删除单词“master”吗?

我试过的正则表达式 - -\s*(. ?)\s (\s*(. ?)\s )

Rubular 链接 - http://rubular.com/r/gPLIa0xqRC

4

2 回答 2

2

是的,您可以在上下文中使用交替运算符来指定它与等号或任何字符匹配,但)“零次或多次”时间前面带有“分支”一词。

-\s*(\S+)\s*\(\s*(?:=|[^)]*\bbranch)\s*(\S+)\s*\)

红色的

于 2014-09-17T22:02:03.847 回答
0

我想你想要:

-\s*(.*?)\s*\(\s*.*branch ‘(.*?)’\s*\)

不过要小心字面引号,因为它们看起来像自动格式化的引号。您的实际输入可能是单引号 ( ') master。这是一个典型的例子。

于 2014-09-17T22:01:14.497 回答