文本块分析器

Text Block Parser

本文关键字:分析器 文本      更新时间:2023-09-26

所以我有一个网站,它有一个文本框,你可以将一块文本粘贴到其中。您输入的字符串将作为变量存储。我正在编写一个javascript部分,该部分解析字符串并给您留下两个变量。你过去的部分看起来像下面的部分。

<!-- Note: comment.
Comment/Comment, more comments "comment"-->
<xx:aaa xx:bbb="sss" xx:ccc="SectionA;SectionB;SectionC=SectionD;SectionE=SectionF.SectionG.SectionH;,SectionI=SectionJ;SectionK=SectionL;SectionM=SectionN;SectionO=SectionP.SectionQ.SectionR;SectionS=/;"/>
<vz:aaa xx:bbb="iii" xx:ccc="'SectionT'SectionU'_SectionV,'SectionW'SectionX,'SectionY'_SectionZ"/>

因此,输入字符串,解析后您将获得以下变量:

varaible1: SectionA;SectionB;SectionC=SectionD;SectionE=SectionF.SectionG.SectionH;,SectionI=SectionJ;SectionK=SectionL;SectionM=SectionN;SectionO=SectionP.SectionQ.SectionR;SectionS=/;
variable2: 'SectionT'SectionU'_SectionV,'SectionW'SectionX,'SectionY'_SectionZ

我有一个基本的解析器设置,它用逗号替换'',但这显然不会减少它。这里需要进行一些严肃的解析操作。

您可以使用正则表达式解析字符串:

    var string = 'Note: comment. Comment/Comment, more comments "comment" '
    <xx:aaa xx:bbb="sss" xx:ccc="SectionA;SectionB;SectionC=SectionD;SectionE=SectionF.SectionG.SectionH;,SectionI=SectionJ;SectionK=SectionL;SectionM=SectionN;SectionO=SectionP.SectionQ.SectionR;SectionS=/;"/> '
    <vz:aaa xx:bbb="iii" xx:ccc="'SectionT'SectionU'_SectionV,'SectionW'SectionX,'SectionY'_SectionZ"/>';
    var regex = /xx:ccc='"([^'>]*)'"'/'>/g;
    var variable1 = regex.exec(string)[1];
    var variable2 = regex.exec(string)[1];
    alert(variable1);
    alert(variable2);

xx:ccc='"与字符xx:ccc=" 匹配

([^'>]*)捕获多个字符,这些字符可以是除闭括号之外的任何字符

'"'/'>与字符"/> 匹配

regex.exec返回一个数组,其中第一个元素是匹配项,第二个元素是第一个捕获组,因此您可以将捕获组的内容分配给变量。