在正则表达式中添加单词

时间:2014-09-17 21:51:21

标签: regex rubular

我在下面有这个字符串:

"\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 个答案:

答案 0 :(得分:2)

是的,您可以在上下文中使用alternation operator来指定它匹配等号或除)之外的任何字符"零或更多"时间之前是单词" branch"。

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

Rubular

答案 1 :(得分:0)

我想你想要:

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

但要小心文字引号,因为它们看起来像自动格式化的引号。您的实际输入可能是'周围的单引号(master)。这是rubular示例。