使用Javascript解析带有正则表达式的文件并将信息转换为json

时间:2016-05-01 16:15:59

标签: javascript json regex

如何将以下数据格式组织成JSON?数据是一个简单的文本文件,如下所示:

<--Header Title-->
Some block of info here
<--Header Title-->
Some block of info here
<--Header Title-->
Some block of info here

有一些棘手的位,例如:

a)可能在<--Header Title-->

中包含Some block of info here
<--Header Title-->
I am info for <--Header Title-->
<--Header Title-->
This <--Header Title--> is finished
<--Header Title-->
<--Header Title--> contains the following:
stuff1
stuff2
stuff3

b)Some block of info here可以是空的,也可以只是空格/换行符

<--Header Title-->
<--Header Title-->


<--Header Title-->
Info text here

c)Some block of info here格式应保留,除非它只有(b)中的空格/换行符。所以下面应该保留前导和结尾的空格/换行符:

<--Header Title-->

More info about blah

blah blah blah
blah blah

<--Header Title-->
Another info about blah

总而言之,我想将其转换为json以便于检索。一个简单的例子:

<-- Option 1 -->
Nice text
<-- Option 2-->


<--Final stuff-->
Listing all
of
the
text

<--Header Title-->
I am info for <--Header Title-->
<--Header Title-->
This <--Header Title--> is finished
<--Header Title-->
<--Header Title--> contains the following:
stuff1
stuff2
stuff3

JSON:

{
  "data":
    [
        {"Option 1": "Nice text"},
        {"Option 2": ""},
        {"Final stuff": "Listing all\nof\nthe\ntext\n"},
        {"Header Title": "I am info for <--Header Title-->"},
        {"Header Title": "This <--Header Title--> is finished"},
        {"Header Title": "<--Header Title--> contains the following:\nstuff1\nstuff2\nstuff3"}
    ]
}

我现在的正则表达式是:

\<\-\-(.*)\-\-\>\n(.*)

但这仅捕获第一次出现,并且仅在(a)没有发生的情况下捕获。

1 个答案:

答案 0 :(得分:1)

您可以使用正则表达式 /<--([\w\s]+)-->([\s\S]*?)(?=\n<--|$)/g 并执行此类操作

&#13;
&#13;
(x - xorig)^2 + (y - yorig)^2 = r^2
&#13;
&#13;
&#13;

<强> Regex explanation

Regular expression visualization