CN105868113A - 字符串查找方法及装置 - Google Patents

字符串查找方法及装置 Download PDF

Info

Publication number
CN105868113A
CN105868113A CN201610196564.6A CN201610196564A CN105868113A CN 105868113 A CN105868113 A CN 105868113A CN 201610196564 A CN201610196564 A CN 201610196564A CN 105868113 A CN105868113 A CN 105868113A
Authority
CN
China
Prior art keywords
state
sub
string
status word
state machine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610196564.6A
Other languages
English (en)
Other versions
CN105868113B (zh
Inventor
刘洋成
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Huaduo Network Technology Co Ltd
Original Assignee
Guangzhou Huaduo Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Huaduo Network Technology Co Ltd filed Critical Guangzhou Huaduo Network Technology Co Ltd
Priority to CN201610196564.6A priority Critical patent/CN105868113B/zh
Publication of CN105868113A publication Critical patent/CN105868113A/zh
Application granted granted Critical
Publication of CN105868113B publication Critical patent/CN105868113B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种字符串查找方法及装置,属于程序开发领域。所述方法包括:读取状态机配置信息,状态机配置信息中包括至少两个子状态,每个子状态用于查找各自对应的字符串,且至少存在两个子状态对应的字符串之间具有上下文关系;使用状态机根据状态机配置信息在目标文本中查找符合预定上下文特征的目标字符串。本发明实施例解决了代码风格需要由专门的审核人员进行审核,审核效率较低且出错率较高的问题;达到了在查找具有复杂上下文特征的目标字符串时,只需要根据目标字符串生成相应的状态机配置,并指示状态机根据该状态机配置自动进行查找,提高了查找效率的同时降低了查找出错率。

Description

字符串查找方法及装置
技术领域
本发明实施例涉及程序开发领域,特别涉及一种字符串查找方法及装置。
背景技术
程序开发过程中,为了提高代码的可读性并方便进行后续代码调试,团队中各个开发人员需要保持一致的代码风格。
比如,为了方便代码调试,开发人员编写的代码中,catch语句内部必须包含打印日志功能对应的代码,即catch语句内部必须包含logth语句。审核人员在审核代码风格时,即检查代码的catch语句中是否包含logth语句,并在catch语句中不包含logth语句时确定该catch语句不符合代码风格,并进行标识。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:代码风格需要由专门的审核人员进行审核,审核效率较低且出错率较高。
发明内容
为了解决现有技术中代码风格需要由专门的审核人员进行审核,审核效率较低且出错率较高的问题,本发明实施例提供了一种字符串查找方法及装置。所述技术方案如下:
根据本发明实施例的第一方面,提供一种字符串查找方法,所述方法包括:
读取状态机配置信息,状态机配置信息中包括至少两个子状态,每个子状态用于查找各自对应的字符串,且至少存在两个子状态对应的字符串之间具有上下文关系;
使用状态机根据状态机配置信息在目标文本中查找符合预定上下文特征的目标字符串。
根据本发明实施例的二方面,提供一种字符串查找装置,所述装置包括:
读取模块,用于读取状态机配置信息,状态机配置信息中包括至少两个子状态,每个子状态用于查找各自对应的字符串,且至少存在两个子状态对应的字符串之间具有上下文关系;
查找模块,用于使用状态机根据状态机配置信息在目标文本中查找符合预定上下文特征的目标字符串。
通过读取状态机配置,并利用状态机根据该状态机配置中子状态对应的字符串之间的上下文关系,在目标文本中查找出符合预定上下文特征的目标字符串;解决了代码风格需要由专门的审核人员进行审核,审核效率较低且出错率较高的问题;达到了在查找具有复杂上下文特征的目标字符串时,只需要根据目标字符串生成相应的状态机配置,并指示状态机根据该状态机配置自动进行查找,提高了查找效率的同时降低了查找出错率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明一个实施例提供的字符串查找方法的方法流程图;
图2A示出了本发明另一个实施例提供的字符串查找方法的方法流程图;
图2B是图2A提供的字符串查找方法所涉及的状态转移图;
图3示出了本发明一个实施例提供的字符串查找装置的结构方框图;
图4示出了本发明另一个实施例提供的字符串查找装置的结构方框图;
图5示出了本发明一个实施例提供的字符串查找装置的框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明各个实施例提供的字符串查找方法运用于运行有状态机的电子设备中,比如,该电子设备可以是个人计算机或代码检测服务器等等。
为了简化描述,下文中仅以字符串查找方法由计算机执行来举例说明,但对此不构成限定。
请参考图1,其示出了本发明一个实施例提供的字符串查找方法的方法流程图。该方法包括:
步骤102,读取状态机配置信息,状态机配置信息中包括至少两个子状态,每个子状态用于查找各自对应的字符串,且至少存在两个子状态对应的字符串之间具有上下文关系。
其中,各个子状态中包括子状态的状态标识、子状态对应的状态字符串以及子状态对应的转移状态标识;
转移状态标识是另一子状态的状态标识,且转移状态标识所指示的子状态对应的状态字符串与当前子状态对应的状态字符串之间具有上下文关系。
步骤104,使用状态机根据状态机配置信息在目标文本中查找符合预定上下文特征的目标字符串。
综上所述,本实施例提供的字符串查找方法,通过读取状态机配置,并利用状态机根据该状态机配置中子状态对应的字符串之间的上下文关系,在目标文本中查找出符合预定上下文特征的目标字符串;解决了代码风格需要由专门的审核人员进行审核,审核效率较低且出错率较高的问题;达到了在查找具有复杂上下文特征的目标字符串时,只需要根据目标字符串生成相应的状态机配置,并指示状态机根据该状态机配置自动进行查找,提高了查找效率的同时降低了查找出错率。
本实施例提供的字符串查找方法应用于代码风格检测时,开发人员预先根据不符合预定代码风格的代码字符串生成相应的状态机配置信息,并通过状态机运行该状态机配置信息,从而在目标代码中查找中所有不符合预定代码风格的代码字符串。下面采用一个实施例进行说明。
请参考图2A,其示出了本发明另一个实施例提供的字符串查找方法的方法流程图。该方法包括:
步骤201,读取状态机配置信息,状态机配置信息中包括至少两个子状态,每个子状态用于查找各自对应的字符串,且至少存在两个子状态对应的字符串之间具有上下文关系。
以代码风格检测为例,开发人员根据需要在目标代码中查找的目标字符串,通过可视化工具绘制出查找该目标字符串时的状态转移图,并根据该状态转移图生成相应的状态机配置。得到该状态机配置信息后,计算机即通过状态机读取该状态机配置信息,使得状态机能够根据该状态机配置信息进行目标字符串的查找。
其中,状态机配置信息中包含至少两个子状态,每个子状态用于指示状态机查找各自对应字符串,并且,该状态机配置信息中至少存在两个子状态对应的字符串之间存在上下文关系。
具体的,状态机配置信息中各个子状态包括子状态的状态标识、子状态对应的状态字符串以及子状态对应的转移状态标识。其中,状态字符串是子状态指示状态机查找的字符串,转移状态标识是另一子状态的状态标识,且转移状态标识所指示的子状态对应的状态字符串与当前子状态对应的状态字符串之间具有所述上下文关系。
比如,子状态1对应的状态字符串为AB,子状态2对应的状态字符串为CD,子状态3对应的状态字符串为EF,其中,子状态1对应的状态字符串AB与子状态2对应的状态字符串CD之间具有上下文关系,子状态2对应的状态字符串CD与子状态3对应的状态字符串EF之间具有上下文关系。则状态机配置信息中,子状态1对应的转移状态标识为子状态2的状态标识,子状态2对应的转移状态标识为子状态3的状态标识。
结合一个具体的实施例,当开发人员需要对目标代码的代码风格进行检测,且代码风格指示catch语句内部必须包含打印日志功能对应的代码时(即catch语句内部必须包含logth语句),开发人员将不包含logth语句的catch语句作为目标字符串,并根据该目标字符串绘制出如图2B所示的状态转移图,其中,logth语句是程序开发领域中用于实现打印功能的代码语句,catch语句则是程序开发领域中用于捕获程序中异常代码的代码语句。
其中,该状态转移图中包括五种子状态,分别为start、catch、block、log以及end,其中,子状态start为初始子状态,子状态end为结束子状态。相连的两个子状态对应的字符串(指示状态机查找的字符串)之间即具有上下文关系。比如,子状态start对应的字符串“catch.*{”与子状态block对应的字符串“}”之间具有上下文关系;子状态block对应的字符串“logth”与子状态log对应的字符串“}”之间具有上下文关系。
根据图2B所示的状态转移图,生成的状态机配置信息中的各个子状态可以示意性如表一所示。
表一
其中,“.*”表示任何字符或字符串。
步骤202,确定状态机当前所处的子状态。
状态机读取该状态机配置信息后,需要进行初始化,作为一种可能的实施方式,本步骤可以包括如下步骤。
步骤202A,根据子状态的状态标识,确定初始子状态。
状态机获取状态机配置信息中各个子状态的状态标识,从而确定出初始子状态,其中,该初始子状态的状态标识可以是预先约定的。比如,状态机可以预先配置将读取到状态标识为start的子状态确定为初始子状态。
步骤202B,根据初始子状态进行初始化。
状态机根据确定后的初始子状态对应的配置(状态字符串以及转移状态标识等等)进行初始化。
步骤203,在目标文本中查找该子状态对应的状态字符串。
状态机根据当前所处子状态对应状态字符串,从目标文本的第一行开始查找。比如,以目标文本为代码为例,状态机即从代码第一行开始,查找初始子状态(start)对应的状态字符串。
步骤204,若在目标文本中查找到该子状态对应的状态字符串,则获取该子状态的转移状态标识。
当在目标文本中查找到初始子状态对应的状态字符串时,状态机即获取初始子状态对应的转移状态标识。
为了方便开发人员获知查找到的目标字符在目标文本中所处的位置等信息,该状态机配置信息中的各个子状态还包括对应的处理方式,当查找到子状态对应的状态字符串时,状态机即根据子状态对应的处理方式执行相应的操作。
其中,该处理方式包括保存查找到的状态字符串所在行的内容、保存查找到的状态字符串所在行的行号、打印保存的内容和打印保存的行号中的至少一种。
如上述表一所示,子状态start对应的处理方式为Record,表示当查找到start对应的状态字符串时,状态机保存该状态字符串所在行的内容以及行号;子状态log对应的处理方式为None,表示当查找到log对应的状态字符串时,状态机不执行处理;子状态end对应的处理方式为Print,表示当查找到end对应的状态字符串时,状态机打印出之前保存的所有内容以及行号。
比如,状态机在第123行代码处查找到初始子状态对应的状态字符串“catch”,即获取到对应的转移状态标识为“catch”,保存行号123并保存第123行代码的内容。
步骤205,若转移状态标识所指示的子状态不是结束子状态,则在位于该状态字符串之后的文本中,查找转移状态标识所指示的子状态对应的状态字符串。
状态机获取到转移状态标识后,进一步检测该转移状态所指示的子状态是否为结束子状态,并在该转移状态所指示的子状态不是结束子状态时,在已查找到的状态字符串之后的文本中,继续查找转移状态标识所指示的子状态对应的状态字符串。其中,与初始子状态相似的,该结束子状态对应的状态标识也可以是预先约定的,比如,状态机可以预先配置将读取到状态标识为end的子状态确定为结束子状态。
结合上述表一,当状态机在第123行代码处查找到初始子状态对应的状态字符串“catch”时,获取到对应的转移状态标识为“catch”,且“catch”所指示的子状态不是结束子状态,状态机则确定当前子状态为“catch”,并从第123行代码处开始,继续查找“catch”对应的状态字符串。
步骤206,若转移状态标识所指示的子状态是结束子状态,则确定查找到目标字符串。
当检测到转移状态标识所指示的子状态是结束子状态时,状态机即确定查找到了符合预定上下文关系的目标字符串。
结合上述表一,比如,当在子状态start下查找到catch.*{}时,状态机即保存catch.*{}所在行的内容以及行号,并跳转至子状态end,由于子状态end为结束子状态,状态机即确定查找到了目标字符串,并根据结束子状态end对应的处理方式,将保存的catch.*{}所在行的内容以及行号打印出来。开发人员根据打印出的内容,即可在目标代码中快速查找到不符合代码风格的代码。
可见,由于仅在结束子状态end对应的处理方式中设置了打印功能,因此,当状态机只会在查找到目标字符串时打印出目标字符串所在行的相应内容,对于非目标字符串(比如符合代码风格的字符串)将不进行打印。
步骤207,根据初始子状态,在位于该状态字符串之后的文本中继续查找目标字符串。
如表一所示,结束子状态对应的转移状态标识为初始子状态对应的状态标识,状态机查找到一个目标字符串后,即确定初始子状态为当前子状态,并在查找到的目标字符串之后的文本中,继续查找目标字符串,直至完成对整个目标文本的查找。
综上所述,本实施例提供的字符串查找方法,通过读取状态机配置,并利用状态机根据该状态机配置中子状态对应的字符串之间的上下文关系,在目标文本中查找出符合预定上下文特征的目标字符串;解决了代码风格需要由专门的审核人员进行审核,审核效率较低且出错率较高的问题;达到了在查找具有复杂上下文特征的目标字符串时,只需要根据目标字符串生成相应的状态机配置,并指示状态机根据该状态机配置自动进行查找,提高了查找效率的同时降低了查找出错率。
本实施例中,通过为各个子状态配置相应的处理方式,使得状态机在查找到目标字符串时能够打印出目标字符串在目标文本中所处的位置,方便开发人员进行故障定位,提高了代码风格检测的效率。
需要说明的是,状态机读取的状态机配置信息可以是采用json数据格式的json文件,示意性的,表一所示状态机配置信息对应的json文件可以如下所示。
请参考图3,其示出了本发明一个实施例提供的字符串查找装置的结构方框图。该字符串查找装置可以通过软件、硬件或者两者的结合实现成为运行有状态机的电子设备的全部或者一部分。该字符串查找装置,包括:
读取模块310,用于读取状态机配置信息,所述状态机配置信息中包括至少两个子状态,每个子状态用于查找各自对应的字符串,且至少存在两个子状态对应的字符串之间具有上下文关系;
查找模块320,用于使用状态机根据所述状态机配置信息在目标文本中查找符合预定上下文特征的目标字符串。
综上所述,本实施例提供的字符串查找装置,通过读取状态机配置,并利用状态机根据该状态机配置中子状态对应的字符串之间的上下文关系,在目标文本中查找出符合预定上下文特征的目标字符串;解决了代码风格需要由专门的审核人员进行审核,审核效率较低且出错率较高的问题;达到了在查找具有复杂上下文特征的目标字符串时,只需要根据目标字符串生成相应的状态机配置,并指示状态机根据该状态机配置自动进行查找,提高了查找效率的同时降低了查找出错率。
请参考图4,其示出了本发明另一个实施例提供的字符串查找装置的结构方框图。该字符串查找装置可以通过软件、硬件或者两者的结合实现成为运行有状态机的电子设备的全部或者一部分。该字符串查找装置,包括:
读取模块410,用于读取状态机配置信息,所述状态机配置信息中包括至少两个子状态,每个子状态用于查找各自对应的字符串,且至少存在两个子状态对应的字符串之间具有上下文关系;
查找模块420,用于使用状态机根据所述状态机配置信息在目标文本中查找符合预定上下文特征的目标字符串。
可选地,所述子状态包括所述子状态的状态标识、所述子状态对应的状态字符串以及所述子状态对应的转移状态标识;
其中,所述状态字符串是所述子状态指示所述状态机查找的字符串;
所述转移状态标识是另一子状态的状态标识,且所述转移状态标识所指示的子状态对应的状态字符串与当前子状态对应的状态字符串之间具有所述上下文关系。
可选地,查找模块420,包括:
第一确定单元421,用于确定所述状态机当前所处的子状态;
第一查找单元422,用于在所述目标文本中查找所述子状态对应的所述状态字符串;
转移单元423,用于若在所述目标文本中查找到所述子状态对应的所述状态字符串,则获取所述子状态的所述转移状态标识;
第二查找单元424,用于若所述转移状态标识所指示的子状态不是结束子状态,则在位于所述状态字符串之后的文本中,查找所述转移状态标识所指示的子状态对应的状态字符串。
可选地,查找模块420,还包括:
第二确定单元425,用于若所述转移状态标识所指示的子状态是所述结束子状态,则确定查找到所述目标字符串。
可选地,结束子状态对应的转移状态标识为初始子状态对应的状态标识,
查找模块420,还包括:
第三查找单元426,用于根据所述初始子状态,在位于所述状态字符串之后的文本中继续查找所述目标字符串。
可选地,第一确定单元421,具体用于:
根据所述子状态的状态标识,确定初始子状态;
根据所述初始子状态对应的进行初始化。
可选地,所述子状态还包括处理方式,所述处理方式包括保存查找到的状态字符串所在行的内容、保存查找到的状态字符串所在行的行号、打印保存的内容和打印保存的行号中的至少一种。
可选地,该状态机配置信息采用json数据格式。
综上所述,本实施例提供的字符串查找装置,通过读取状态机配置,并利用状态机根据该状态机配置中子状态对应的字符串之间的上下文关系,在目标文本中查找出符合预定上下文特征的目标字符串;解决了代码风格需要由专门的审核人员进行审核,审核效率较低且出错率较高的问题;达到了在查找具有复杂上下文特征的目标字符串时,只需要根据目标字符串生成相应的状态机配置,并指示状态机根据该状态机配置自动进行查找,提高了查找效率的同时降低了查找出错率。
本实施例中,通过为各个子状态配置相应的处理方式,使得状态机在查找到目标字符串时能够打印出目标字符串在目标文本中所处的位置,方便开发人员进行故障定位,提高了代码风格检测的效率。
需要说明的是:上述实施例提供的字符串查找装置在目标文本中查找目标字符串时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将运行有状态机的电子设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的字符串查找装置与字符串查找方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图5示出了本发明一个实施例提供的字符串查找装置的框图。该字符串查找装置500可以是运用于运行有状态机的计算机。具体来讲:
装置500包括中央处理单元(CPU)501、包括随机存取存储器(RAM)502和只读存储器(ROM)503的***存储器504,以及连接***存储器504和中央处理单元501的***总线505。装置500还包括帮助计算机内的各个器件之间传输信息的基本输入/输出***(I/O***)506,和用于存储操作***513、应用程序514和其他程序模块515的大容量存储设备507。
基本输入/输出***506包括有用于显示信息的显示器508和用于用户输入信息的诸如鼠标、键盘之类的输入设备509。其中显示器508和输入设备509都通过连接到***总线505的输入输出控制器510连接到中央处理单元501。基本输入/输出***506还可以包括输入输出控制器510以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器510还提供输出到显示屏、打印机或其他类型的输出设备。
大容量存储设备507通过连接到***总线505的大容量存储控制器(未示出)连接到中央处理单元501。大容量存储设备507及其相关联的计算机可读介质为装置500提供非易失性存储。也就是说,大容量存储设备507可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的***存储器504和大容量存储设备507可以统称为存储器。
根据本发明的各种实施例,装置500还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即装置500可以通过连接在***总线505上的网络接口单元511连接到网络512,或者说,也可以使用网络接口单元511来连接到其他类型的网络或远程计算机***(未示出)。
上述存储器还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储器中,被配置由CPU执行。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (16)

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数据格式。
CN201610196564.6A 2016-03-31 2016-03-31 字符串查找方法及装置 Active CN105868113B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610196564.6A CN105868113B (zh) 2016-03-31 2016-03-31 字符串查找方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610196564.6A CN105868113B (zh) 2016-03-31 2016-03-31 字符串查找方法及装置

Publications (2)

Publication Number Publication Date
CN105868113A true CN105868113A (zh) 2016-08-17
CN105868113B CN105868113B (zh) 2019-05-31

Family

ID=56627749

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610196564.6A Active CN105868113B (zh) 2016-03-31 2016-03-31 字符串查找方法及装置

Country Status (1)

Country Link
CN (1) CN105868113B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109683897A (zh) * 2018-12-29 2019-04-26 广州华多网络科技有限公司 程序处理方法、装置及设备
CN112307167A (zh) * 2020-10-30 2021-02-02 广州华多网络科技有限公司 文本切句方法、装置、计算机设备和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040064807A1 (en) * 2002-09-30 2004-04-01 Ibm Corporation Validating content of localization data files
CN101174261A (zh) * 2006-11-03 2008-05-07 北京航空航天大学 用于多正则表达式联合搜索的扩展有限状态机及搜索方法
CN102902664A (zh) * 2012-08-15 2013-01-30 中山大学 一种智能终端上的人工智能自然语言运行***
CN103984688A (zh) * 2013-04-28 2014-08-13 百度在线网络技术(北京)有限公司 一种基于本地词库提供输入候选词条的方法与设备
CN104753916A (zh) * 2013-12-30 2015-07-01 凯为公司 用于处理有限自动机的方法和装置
CN104820666A (zh) * 2014-01-31 2015-08-05 凯为公司 基于栈顶(tos)存储器的有限自动机处理

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040064807A1 (en) * 2002-09-30 2004-04-01 Ibm Corporation Validating content of localization data files
CN101174261A (zh) * 2006-11-03 2008-05-07 北京航空航天大学 用于多正则表达式联合搜索的扩展有限状态机及搜索方法
CN102902664A (zh) * 2012-08-15 2013-01-30 中山大学 一种智能终端上的人工智能自然语言运行***
CN103984688A (zh) * 2013-04-28 2014-08-13 百度在线网络技术(北京)有限公司 一种基于本地词库提供输入候选词条的方法与设备
CN104753916A (zh) * 2013-12-30 2015-07-01 凯为公司 用于处理有限自动机的方法和装置
CN104820666A (zh) * 2014-01-31 2015-08-05 凯为公司 基于栈顶(tos)存储器的有限自动机处理

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109683897A (zh) * 2018-12-29 2019-04-26 广州华多网络科技有限公司 程序处理方法、装置及设备
CN109683897B (zh) * 2018-12-29 2022-05-10 广州华多网络科技有限公司 程序处理方法、装置及设备
CN112307167A (zh) * 2020-10-30 2021-02-02 广州华多网络科技有限公司 文本切句方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN105868113B (zh) 2019-05-31

Similar Documents

Publication Publication Date Title
US8041652B2 (en) Measuring web site satisfaction of information needs using page traffic profile
Booch Object solutions: managing the object-oriented project
US9773010B1 (en) Information-driven file system navigation
US20150324457A1 (en) Ordering a Set of Regular Expressions for Matching Against a String
US20180165258A1 (en) Methods for improved auditing of web sites and devices thereof
CN107844567A (zh) 一种业务经验包推荐***和方法
CN108427731A (zh) 页面代码的处理方法、装置、终端设备及介质
US10956747B2 (en) Creating sparsely labeled video annotations
Van Ham et al. Centrality based visualization of small world graphs
CN103440198B (zh) 表单校验方法
CN110245469A (zh) 网页的水印生成方法、水印解析方法、装置及存储介质
Kalenkova et al. Discovery of cancellation regions within process mining techniques
CN107102908A (zh) 数据校验方法、数据容错方法及装置
CN105930537A (zh) 一种页面保存的方法及电子设备
CN108460068A (zh) 报表导入导出的方法、装置、存储介质及终端
CN105868113A (zh) 字符串查找方法及装置
CN107291486A (zh) 一种操作***的安装方法和装置
CN103152212B (zh) 一种告警相关性分析方法、装置及网络管理***
CN108153465A (zh) 基于企业SaaS应用的标签设置方法及装置
CN107480056A (zh) 一种软件测试方法和装置
CN108241559A (zh) 内存测试方法及装置
CN107133163A (zh) 一种验证描述类api的方法与设备
US9142047B2 (en) Visualizing data transfers in distributed file system
CN108897522A (zh) 数据处理方法、数据处理装置以及电子设备
CN109542904A (zh) 业务数据处理方法、装置、服务器和介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant