字符串查找方法及装置的制造方法

文档序号:10512101阅读:173来源:国知局
字符串查找方法及装置的制造方法
【专利摘要】本发明公开了一种字符串查找方法及装置,属于程序开发领域。所述方法包括:读取状态机配置信息,状态机配置信息中包括至少两个子状态,每个子状态用于查找各自对应的字符串,且至少存在两个子状态对应的字符串之间具有上下文关系;使用状态机根据状态机配置信息在目标文本中查找符合预定上下文特征的目标字符串。本发明实施例解决了代码风格需要由专门的审核人员进行审核,审核效率较低且出错率较高的问题;达到了在查找具有复杂上下文特征的目标字符串时,只需要根据目标字符串生成相应的状态机配置,并指示状态机根据该状态机配置自动进行查找,提高了查找效率的同时降低了查找出错率。
【专利说明】
字符串查找方法及装置
技术领域
[0001] 本发明实施例涉及程序开发领域,特别涉及一种字符串查找方法及装置。
【背景技术】
[0002] 程序开发过程中,为了提高代码的可读性并方便进行后续代码调试,团队中各个 开发人员需要保持一致的代码风格。
[0003] 比如,为了方便代码调试,开发人员编写的代码中,catch语句内部必须包含打印 日志功能对应的代码,即catch语句内部必须包含logth语句。审核人员在审核代码风格时, 即检查代码的catch语句中是否包含logth语句,并在catch语句中不包含logth语句时确定 该catch语句不符合代码风格,并进行标识。
[0004] 在实现本发明的过程中,发明人发现现有技术至少存在以下问题:代码风格需要 由专门的审核人员进行审核,审核效率较低且出错率较高。

【发明内容】

[0005] 为了解决现有技术中代码风格需要由专门的审核人员进行审核,审核效率较低且 出错率较高的问题,本发明实施例提供了一种字符串查找方法及装置。所述技术方案如下:
[0006] 根据本发明实施例的第一方面,提供一种字符串查找方法,所述方法包括:
[0007] 读取状态机配置信息,状态机配置信息中包括至少两个子状态,每个子状态用于 查找各自对应的字符串,且至少存在两个子状态对应的字符串之间具有上下文关系;
[0008] 使用状态机根据状态机配置信息在目标文本中查找符合预定上下文特征的目标 字符串。
[0009] 根据本发明实施例的二方面,提供一种字符串查找装置,所述装置包括:
[0010] 读取模块,用于读取状态机配置信息,状态机配置信息中包括至少两个子状态,每 个子状态用于查找各自对应的字符串,且至少存在两个子状态对应的字符串之间具有上下 文关系;
[0011] 查找模块,用于使用状态机根据状态机配置信息在目标文本中查找符合预定上下 文特征的目标字符串。
[0012] 通过读取状态机配置,并利用状态机根据该状态机配置中子状态对应的字符串之 间的上下文关系,在目标文本中查找出符合预定上下文特征的目标字符串;解决了代码风 格需要由专门的审核人员进行审核,审核效率较低且出错率较高的问题;达到了在查找具 有复杂上下文特征的目标字符串时,只需要根据目标字符串生成相应的状态机配置,并指 示状态机根据该状态机配置自动进行查找,提高了查找效率的同时降低了查找出错率。
【附图说明】
[0013] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使 用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于 本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他 的附图。
[0014] 图1示出了本发明一个实施例提供的字符串查找方法的方法流程图;
[0015] 图2A示出了本发明另一个实施例提供的字符串查找方法的方法流程图;
[0016]图2B是图2A提供的字符串查找方法所涉及的状态转移图;
[0017] 图3示出了本发明一个实施例提供的字符串查找装置的结构方框图;
[0018] 图4示出了本发明另一个实施例提供的字符串查找装置的结构方框图;
[0019] 图5示出了本发明一个实施例提供的字符串查找装置的框图。
【具体实施方式】
[0020] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方 式作进一步地详细描述。
[0021] 本发明各个实施例提供的字符串查找方法运用于运行有状态机的电子设备中,比 如,该电子设备可以是个人计算机或代码检测服务器等等。
[0022] 为了简化描述,下文中仅以字符串查找方法由计算机执行来举例说明,但对此不 构成限定。
[0023] 请参考图1,其示出了本发明一个实施例提供的字符串查找方法的方法流程图。该 方法包括:
[0024] 步骤102,读取状态机配置信息,状态机配置信息中包括至少两个子状态,每个子 状态用于查找各自对应的字符串,且至少存在两个子状态对应的字符串之间具有上下文关 系。
[0025] 其中,各个子状态中包括子状态的状态标识、子状态对应的状态字符串以及子状 态对应的转移状态标识;
[0026] 转移状态标识是另一子状态的状态标识,且转移状态标识所指示的子状态对应的 状态字符串与当前子状态对应的状态字符串之间具有上下文关系。
[0027] 步骤104,使用状态机根据状态机配置信息在目标文本中查找符合预定上下文特 征的目标字符串。
[0028] 综上所述,本实施例提供的字符串查找方法,通过读取状态机配置,并利用状态机 根据该状态机配置中子状态对应的字符串之间的上下文关系,在目标文本中查找出符合预 定上下文特征的目标字符串;解决了代码风格需要由专门的审核人员进行审核,审核效率 较低且出错率较高的问题;达到了在查找具有复杂上下文特征的目标字符串时,只需要根 据目标字符串生成相应的状态机配置,并指示状态机根据该状态机配置自动进行查找,提 高了查找效率的同时降低了查找出错率。
[0029] 本实施例提供的字符串查找方法应用于代码风格检测时,开发人员预先根据不符 合预定代码风格的代码字符串生成相应的状态机配置信息,并通过状态机运行该状态机配 置信息,从而在目标代码中查找中所有不符合预定代码风格的代码字符串。下面采用一个 实施例进行说明。
[0030] 请参考图2A,其示出了本发明另一个实施例提供的字符串查找方法的方法流程 图。该方法包括:
[0031] 步骤201,读取状态机配置信息,状态机配置信息中包括至少两个子状态,每个子 状态用于查找各自对应的字符串,且至少存在两个子状态对应的字符串之间具有上下文关 系。
[0032] 以代码风格检测为例,开发人员根据需要在目标代码中查找的目标字符串,通过 可视化工具绘制出查找该目标字符串时的状态转移图,并根据该状态转移图生成相应的状 态机配置。得到该状态机配置信息后,计算机即通过状态机读取该状态机配置信息,使得状 态机能够根据该状态机配置信息进行目标字符串的查找。
[0033] 其中,状态机配置信息中包含至少两个子状态,每个子状态用于指示状态机查找 各自对应字符串,并且,该状态机配置信息中至少存在两个子状态对应的字符串之间存在 上下文关系。
[0034] 具体的,状态机配置信息中各个子状态包括子状态的状态标识、子状态对应的状 态字符串以及子状态对应的转移状态标识。其中,状态字符串是子状态指示状态机查找的 字符串,转移状态标识是另一子状态的状态标识,且转移状态标识所指示的子状态对应的 状态字符串与当前子状态对应的状态字符串之间具有所述上下文关系。
[0035]比如,子状态1对应的状态字符串为AB,子状态2对应的状态字符串为CD,子状态3 对应的状态字符串为EF,其中,子状态1对应的状态字符串AB与子状态2对应的状态字符串 CD之间具有上下文关系,子状态2对应的状态字符串CD与子状态3对应的状态字符串EF之间 具有上下文关系。则状态机配置信息中,子状态1对应的转移状态标识为子状态2的状态标 识,子状态2对应的转移状态标识为子状态3的状态标识。
[0036]结合一个具体的实施例,当开发人员需要对目标代码的代码风格进行检测,且代 码风格指示catch语句内部必须包含打印日志功能对应的代码时(即catch语句内部必须包 含logth语句),开发人员将不包含logth语句的catch语句作为目标字符串,并根据该目标 字符串绘制出如图2B所示的状态转移图,其中,logth语句是程序开发领域中用于实现打印 功能的代码语句,catch语句则是程序开发领域中用于捕获程序中异常代码的代码语句。 [00 37] 其中,该状态转移图中包括五种子状态,分别为start、catch、block、log以及end, 其中,子状态start为初始子状态,子状态end为结束子状态。相连的两个子状态对应的字符 串(指示状态机查找的字符串)之间即具有上下文关系。比如,子状态start对应的字符串 "catch .*{"与子状态block对应的字符串之间具有上下文关系;子状态block对应的字 符串"logth"与子状态log对应的字符串之间具有上下文关系。
[0038] 根据图2B所示的状态转移图,生成的状态机配置信息中的各个子状态可以示意性 如表一所不。
[0039] 表一
[0040]
[0041] 其中,表示任何字符或字符串。
[0042] 步骤202,确定状态机当前所处的子状态。
[0043] 状态机读取该状态机配置信息后,需要进行初始化,作为一种可能的实施方式,本 步骤可以包括如下步骤。
[0044]步骤202A,根据子状态的状态标识,确定初始子状态。
[0045]状态机获取状态机配置信息中各个子状态的状态标识,从而确定出初始子状态, 其中,该初始子状态的状态标识可以是预先约定的。比如,状态机可以预先配置将读取到状 态标识为start的子状态确定为初始子状态。
[0046]步骤202B,根据初始子状态进行初始化。
[0047] 状态机根据确定后的初始子状态对应的配置(状态字符串以及转移状态标识等 等)进行初始化。
[0048] 步骤203,在目标文本中查找该子状态对应的状态字符串。
[0049] 状态机根据当前所处子状态对应状态字符串,从目标文本的第一行开始查找。比 如,以目标文本为代码为例,状态机即从代码第一行开始,查找初始子状态(start)对应的 状态字符串。
[0050] 步骤204,若在目标文本中查找到该子状态对应的状态字符串,则获取该子状态的 转移状态标识。
[0051] 当在目标文本中查找到初始子状态对应的状态字符串时,状态机即获取初始子状 态对应的转移状态标识。
[0052] 为了方便开发人员获知查找到的目标字符在目标文本中所处的位置等信息,该状 态机配置信息中的各个子状态还包括对应的处理方式,当查找到子状态对应的状态字符串 时,状态机即根据子状态对应的处理方式执行相应的操作。
[0053] 其中,该处理方式包括保存查找到的状态字符串所在行的内容、保存查找到的状 态字符串所在行的行号、打印保存的内容和打印保存的行号中的至少一种。
[0054] 如上述表一所示,子状态start对应的处理方式为Record,表示当查找到start对 应的状态字符串时,状态机保存该状态字符串所在行的内容以及行号;子状态log对应的处 理方式为None,表示当查找到log对应的状态字符串时,状态机不执行处理;子状态end对应 的处理方式为Print,表示当查找到end对应的状态字符串时,状态机打印出之前保存的所 有内容以及行号。
[0055]比如,状态机在第123行代码处查找到初始子状态对应的状态字符串"catch",即 获取到对应的转移状态标识为"catch",保存行号123并保存第123行代码的内容。
[0056] 步骤205,若转移状态标识所指示的子状态不是结束子状态,则在位于该状态字符 串之后的文本中,查找转移状态标识所指示的子状态对应的状态字符串。
[0057] 状态机获取到转移状态标识后,进一步检测该转移状态所指示的子状态是否为结 束子状态,并在该转移状态所指示的子状态不是结束子状态时,在已查找到的状态字符串 之后的文本中,继续查找转移状态标识所指示的子状态对应的状态字符串。其中,与初始子 状态相似的,该结束子状态对应的状态标识也可以是预先约定的,比如,状态机可以预先配 置将读取到状态标识为end的子状态确定为结束子状态。
[0058]结合上述表一,当状态机在第123行代码处查找到初始子状态对应的状态字符串 "catch"时,获取到对应的转移状态标识为"catch",且"catch"所指示的子状态不是结束子 状态,状态机则确定当前子状态为"catch",并从第123行代码处开始,继续查找"catch"对 应的状态字符串。
[0059]步骤206,若转移状态标识所指示的子状态是结束子状态,则确定查找到目标字符 串。
[0060]当检测到转移状态标识所指示的子状态是结束子状态时,状态机即确定查找到了 符合预定上下文关系的目标字符串。
[0061 ] 结合上述表一,比如,当在子状态start下查找到catch .*{}时,状态机即保存 catch. * {}所在行的内容以及行号,并跳转至子状态end,由于子状态end为结束子状态,状 态机即确定查找到了目标字符串,并根据结束子状态end对应的处理方式,将保存的 catch.*{}所在行的内容以及行号打印出来。开发人员根据打印出的内容,即可在目标代码 中快速查找到不符合代码风格的代码。
[0062] 可见,由于仅在结束子状态end对应的处理方式中设置了打印功能,因此,当状态 机只会在查找到目标字符串时打印出目标字符串所在行的相应内容,对于非目标字符串 (比如符合代码风格的字符串)将不进行打印。
[0063] 步骤207,根据初始子状态,在位于该状态字符串之后的文本中继续查找目标字符 串。
[0064] 如表一所示,结束子状态对应的转移状态标识为初始子状态对应的状态标识,状 态机查找到一个目标字符串后,即确定初始子状态为当前子状态,并在查找到的目标字符 串之后的文本中,继续查找目标字符串,直至完成对整个目标文本的查找。
[0065] 综上所述,本实施例提供的字符串查找方法,通过读取状态机配置,并利用状态机 根据该状态机配置中子状态对应的字符串之间的上下文关系,在目标文本中查找出符合预 定上下文特征的目标字符串;解决了代码风格需要由专门的审核人员进行审核,审核效率 较低且出错率较高的问题;达到了在查找具有复杂上下文特征的目标字符串时,只需要根 据目标字符串生成相应的状态机配置,并指示状态机根据该状态机配置自动进行查找,提 高了查找效率的同时降低了查找出错率。
[0066]本实施例中,通过为各个子状态配置相应的处理方式,使得状态机在查找到目标 字符串时能够打印出目标字符串在目标文本中所处的位置,方便开发人员进行故障定位, 提高了代码风格检测的效率。
[0067]需要说明的是,状态机读取的状态机配置信息可以是采用json数据格式的json文 件,示意性的,表一所示状态机配置信息对应的json文件可以如下所示。


[0071] 请参考图3,其示出了本发明一个实施例提供的字符串查找装置的结构方框图。该 字符串查找装置可以通过软件、硬件或者两者的结合实现成为运行有状态机的电子设备的 全部或者一部分。该字符串查找装置,包括:
[0072] 读取模块310,用于读取状态机配置信息,所述状态机配置信息中包括至少两个子 状态,每个子状态用于查找各自对应的字符串,且至少存在两个子状态对应的字符串之间 具有上下文关系;
[0073] 查找模块320,用于使用状态机根据所述状态机配置信息在目标文本中查找符合 预定上下文特征的目标字符串。
[0074]综上所述,本实施例提供的字符串查找装置,通过读取状态机配置,并利用状态机 根据该状态机配置中子状态对应的字符串之间的上下文关系,在目标文本中查找出符合预 定上下文特征的目标字符串;解决了代码风格需要由专门的审核人员进行审核,审核效率 较低且出错率较高的问题;达到了在查找具有复杂上下文特征的目标字符串时,只需要根 据目标字符串生成相应的状态机配置,并指示状态机根据该状态机配置自动进行查找,提 高了查找效率的同时降低了查找出错率。
[0075]请参考图4,其示出了本发明另一个实施例提供的字符串查找装置的结构方框图。 该字符串查找装置可以通过软件、硬件或者两者的结合实现成为运行有状态机的电子设备 的全部或者一部分。该字符串查找装置,包括:
[0076]读取模块410,用于读取状态机配置信息,所述状态机配置信息中包括至少两个子 状态,每个子状态用于查找各自对应的字符串,且至少存在两个子状态对应的字符串之间 具有上下文关系;
[0077]查找模块420,用于使用状态机根据所述状态机配置信息在目标文本中查找符合 预定上下文特征的目标字符串。
[0078] 可选地,所述子状态包括所述子状态的状态标识、所述子状态对应的状态字符串 以及所述子状态对应的转移状态标识;
[0079] 其中,所述状态字符串是所述子状态指示所述状态机查找的字符串;
[0080] 所述转移状态标识是另一子状态的状态标识,且所述转移状态标识所指示的子状 态对应的状态字符串与当前子状态对应的状态字符串之间具有所述上下文关系。
[0081 ] 可选地,查找模块420,包括:
[0082]第一确定单元421,用于确定所述状态机当前所处的子状态;
[0083] 第一查找单元422,用于在所述目标文本中查找所述子状态对应的所述状态字符 串;
[0084] 转移单元423,用于若在所述目标文本中查找到所述子状态对应的所述状态字符 串,则获取所述子状态的所述转移状态标识;
[0085] 第二查找单元424,用于若所述转移状态标识所指示的子状态不是结束子状态,则 在位于所述状态字符串之后的文本中,查找所述转移状态标识所指示的子状态对应的状态 字符串。
[0086] 可选地,查找模块420,还包括:
[0087] 第二确定单元425,用于若所述转移状态标识所指示的子状态是所述结束子状态, 则确定查找到所述目标字符串。
[0088] 可选地,结束子状态对应的转移状态标识为初始子状态对应的状态标识,
[0089] 查找模块420,还包括:
[0090]第三查找单元426,用于根据所述初始子状态,在位于所述状态字符串之后的文本 中继续查找所述目标字符串。
[0091] 可选地,第一确定单元421,具体用于:
[0092] 根据所述子状态的状态标识,确定初始子状态;
[0093] 根据所述初始子状态对应的进行初始化。
[0094] 可选地,所述子状态还包括处理方式,所述处理方式包括保存查找到的状态字符 串所在行的内容、保存查找到的状态字符串所在行的行号、打印保存的内容和打印保存的 行号中的至少一种。
[0095]可选地,该状态机配置信息采用json数据格式。
[0096] 综上所述,本实施例提供的字符串查找装置,通过读取状态机配置,并利用状态机 根据该状态机配置中子状态对应的字符串之间的上下文关系,在目标文本中查找出符合预 定上下文特征的目标字符串;解决了代码风格需要由专门的审核人员进行审核,审核效率 较低且出错率较高的问题;达到了在查找具有复杂上下文特征的目标字符串时,只需要根 据目标字符串生成相应的状态机配置,并指示状态机根据该状态机配置自动进行查找,提 高了查找效率的同时降低了查找出错率。
[0097] 本实施例中,通过为各个子状态配置相应的处理方式,使得状态机在查找到目标 字符串时能够打印出目标字符串在目标文本中所处的位置,方便开发人员进行故障定位, 提高了代码风格检测的效率。
[0098]需要说明的是:上述实施例提供的字符串查找装置在目标文本中查找目标字符串 时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分 配由不同的功能模块完成,即将运行有状态机的电子设备的内部结构划分成不同的功能模 块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的字符串查找装置与字符 串查找方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0099] 图5示出了本发明一个实施例提供的字符串查找装置的框图。该字符串查找装置 500可以是运用于运行有状态机的计算机。具体来讲:
[0100] 装置500包括中央处理单元(CPU)501、包括随机存取存储器(RAM)502和只读存储 器(R0M)503的系统存储器504,以及连接系统存储器504和中央处理单元501的系统总线 505。装置500还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系 统)506,和用于存储操作系统513、应用程序514和其他程序模块515的大容量存储设备507。
[0101] 基本输入/输出系统506包括有用于显示信息的显示器508和用于用户输入信息的 诸如鼠标、键盘之类的输入设备509。其中显示器508和输入设备509都通过连接到系统总线 505的输入输出控制器510连接到中央处理单元501。基本输入/输出系统506还可以包括输 入输出控制器510以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输 入。类似地,输入输出控制器510还提供输出到显示屏、打印机或其他类型的输出设备。
[0102] 大容量存储设备507通过连接到系统总线505的大容量存储控制器(未示出)连接 到中央处理单元501。大容量存储设备507及其相关联的计算机可读介质为装置500提供非 易失性存储。也就是说,大容量存储设备507可以包括诸如硬盘或者CD-ROM驱动器之类的计 算机可读介质(未示出)。
[0103] 不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储 介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何 方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、 R0M、EPR0M、EEPR0M、闪存或其他固态存储其技术,CD-R0M、DVD或其他光学存储、磁带盒、磁 带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上 述几种。上述的系统存储器504和大容量存储设备507可以统称为存储器。
[0104] 根据本发明的各种实施例,装置500还可以通过诸如因特网等网络连接到网络上 的远程计算机运行。也即装置500可以通过连接在系统总线505上的网络接口单元511连接 到网络512,或者说,也可以使用网络接口单元511来连接到其他类型的网络或远程计算机 系统(未不出)。
[0105] 上述存储器还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储 器中,被配置由CPU执行。
[0106] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0107] 本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件 来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读 存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0108] 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和 原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1. 一种字符串查找方法,其特征在于,所述方法包括: 读取状态机配置信息,所述状态机配置信息中包括至少两个子状态,每个子状态用于 查找各自对应的字符串,且至少存在两个子状态对应的字符串之间具有上下文关系; 使用状态机根据所述状态机配置信息在目标文本中查找符合预定上下文特征的目标 字符串。2. 根据权利要求1所述的方法,其特征在于,所述子状态包括所述子状态的状态标识、 所述子状态对应的状态字符串以及所述子状态对应的转移状态标识; 其中,所述状态字符串是所述子状态指示所述状态机查找的字符串; 所述转移状态标识是另一子状态的状态标识,且所述转移状态标识所指示的子状态对 应的状态字符串与当前子状态对应的状态字符串之间具有所述上下文关系。3. 根据权利要求2所述的方法,其特征在于,所述使用状态机根据所述状态机配置信息 在目标文本中查找符合预定上下文特征的目标字符串,包括: 确定所述状态机当前所处的子状态; 在所述目标文本中查找所述子状态对应的所述状态字符串; 若在所述目标文本中查找到所述子状态对应的所述状态字符串,则获取所述子状态的 所述转移状态标识; 若所述转移状态标识所指示的子状态不是结束子状态,则在位于所述状态字符串之后 的文本中,查找所述转移状态标识所指示的子状态对应的状态字符串。4. 根据权利要求3所述的方法,其特征在于,所述获取所述子状态的所述转移状态标识 之后,还包括: 若所述转移状态标识所指示的子状态是所述结束子状态,则确定查找到所述目标字符 串。5. 根据权利要求4所述的方法,其特征在于,所述结束子状态对应的转移状态标识为初 始子状态对应的状态标识, 所述确定查找到所述目标字符串之后,还包括: 根据所述初始子状态,在位于所述状态字符串之后的文本中继续查找所述目标字符 串。6. 根据权利要求3至5任一所述的方法,其特征在于,所述确定所述状态机当前所处的 子状态,包括: 根据所述子状态的状态标识,确定初始子状态; 根据所述初始子状态进行初始化。7. 根据权利要求2至6任一所述的方法,其特征在于,所述子状态还包括处理方式,所述 处理方式包括保存查找到的状态字符串所在行的内容、保存查找到的状态字符串所在行的 行号、打印保存的内容和打印保存的行号中的至少一种。8. 根据权利要求1至7任一所述的方法,其特征在于,所述状态机配置信息采用json数 据格式。9. 一种字符串查找装置,其特征在于,所述装置包括: 读取模块,用于读取状态机配置信息,所述状态机配置信息中包括至少两个子状态,每 个子状态用于查找各自对应的字符串,且至少存在两个子状态对应的字符串之间具有上下 文关系; 查找模块,用于使用状态机根据所述状态机配置信息在目标文本中查找符合预定上下 文特征的目标字符串。10. 根据权利要求9所述的装置,其特征在于,所述子状态包括所述子状态的状态标识、 所述子状态对应的状态字符串以及所述子状态对应的转移状态标识; 其中,所述状态字符串是所述子状态指示所述状态机查找的字符串; 所述转移状态标识是另一子状态的状态标识,且所述转移状态标识所指示的子状态对 应的状态字符串与当前子状态对应的状态字符串之间具有所述上下文关系。11. 根据权利要求10所述的装置,其特征在于,所述查找模块,包括: 第一确定单元,用于确定所述状态机当前所处的子状态; 第一查找单元,用于在所述目标文本中查找所述子状态对应的所述状态字符串; 转移单元,用于若在所述目标文本中查找到所述子状态对应的所述状态字符串,则获 取所述子状态的所述转移状态标识; 第二查找单元,用于若所述转移状态标识所指示的子状态不是结束子状态,则在位于 所述状态字符串之后的文本中,查找所述转移状态标识所指示的子状态对应的状态字符 串。12. 根据权利要求11所述的装置,其特征在于,所述查找模块,还包括: 第二确定单元,用于若所述转移状态标识所指示的子状态是所述结束子状态,则确定 查找到所述目标字符串。13. 根据权利要求12所述的装置,其特征在于,所述结束子状态对应的转移状态标识为 初始子状态对应的状态标识, 所述查找模块,还包括: 第三查找单元,用于根据所述初始子状态,在位于所述状态字符串之后的文本中继续 查找所述目标字符串。14. 根据权利要求11至13任一所述的装置,其特征在于,所述第一确定单元,用于: 根据所述子状态的状态标识,确定初始子状态; 根据所述初始子状态对应的进行初始化。15. 根据权利要求10至14任一所述的装置,其特征在于,所述子状态还包括处理方式, 所述处理方式包括保存查找到的状态字符串所在行的内容、保存查找到的状态字符串所在 行的行号、打印保存的内容和打印保存的行号中的至少一种。16. 根据权利要求9至15任一所述的装置,其特征在于,所述状态机配置信息采用json 数据格式。
【文档编号】G06F11/36GK105868113SQ201610196564
【公开日】2016年8月17日
【申请日】2016年3月31日
【发明人】刘洋成
【申请人】广州华多网络科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1