我有以下字符串:
"\n - MyLibrary1 (= 0.10.0)\n - AFNetworking (= 1.1.0)\n - MyLibrary2 (= 3.0.0)\n - Objective-C-HMTL-Parser (= 0.0.1)\n\n"
我想创建一个像这样的JSON:
{
"MyLibrary1": "0.10.0",
"AFNetworking": "1.1.0",
"MyLibrary2": "3.0.0",
"Objective-C-HMTL-Parser": "0.0.1"
}
我需要分开" MyLibrary1"和" 0.10.0"以及类似的其他数据来创建一个字符串。我正在使用正则表达式来从字符串中分离数据。
我尝试/-(.*)/
和/=(.*)/
,但这会在-
和=
之后返回所有内容。
有没有办法使用单一正则表达式获取所需的数据?另外,我如何让正则表达式知道它需要在(
或)
停止。我正在使用Rubular对此进行测试,每当我输入(
或)
时,我都会得到"您有一个不匹配的括号。"
答案 0 :(得分:1)
答案 1 :(得分:1)
似乎可以使用您的样本。
# -\s*(.*?)\s*\(\s*=\s*(.*?)\s*\)
-
\s*
( .*? ) # (1)
\s*
\(
\s*
=
\s*
( .*? ) # (2)
\s*
\)
或者,您可以进行一些温和的验证。请注意,惰性量词仅用于 修剪空白。
# -\s*([^()=]*?)\s*\(\s*=\s*([^()=-]*?)\s*\)
-
\s*
( [^()=]*? ) # (1)
\s*
\(
\s*
=
\s*
( [^()=-]*? ) # (2)
\s*
\)
答案 2 :(得分:0)