CN117610555A - 一种字符串表达式处理方法、装置、设备及存储介质 - Google Patents

一种字符串表达式处理方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN117610555A
CN117610555A CN202311658281.5A CN202311658281A CN117610555A CN 117610555 A CN117610555 A CN 117610555A CN 202311658281 A CN202311658281 A CN 202311658281A CN 117610555 A CN117610555 A CN 117610555A
Authority
CN
China
Prior art keywords
expression
character string
preset
processing
lexical
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.)
Pending
Application number
CN202311658281.5A
Other languages
English (en)
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.)
Agricultural Bank of China
Original Assignee
Agricultural Bank of China
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 Agricultural Bank of China filed Critical Agricultural Bank of China
Priority to CN202311658281.5A priority Critical patent/CN117610555A/zh
Publication of CN117610555A publication Critical patent/CN117610555A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/253Grammatical analysis; Style critique

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Machine Translation (AREA)

Abstract

本发明实施例公开了一种字符串表达式处理方法、装置、设备及存储介质,该方法包括:获取字符串表达式,并采用词法分析器和语法分析器对字符串表达式的词法和语法进行分析;当词法和语法均满足预设要求时,获取字符串表达式中的特殊运算符,并采用预设正则表达式将特殊运算符转换为计算机可识别运算符,得到目标表达式;将目标表达式转换为目标后缀表达式,并通过运算符栈和数据栈对目标后缀表达式进行处理,得到表达式处理结果。本发明的技术方案可以实现快速、准确地对字符串表达式的合法性进行验证,降低了对字符串表达式进行处理的成本,提高了对字符串表达式进行处理的效率。

Description

一种字符串表达式处理方法、装置、设备及存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种字符串表达式处理方法、装置、设备及存储介质。
背景技术
随着信息技术与银行业务的发展,银行业务时刻都产生着大量的复杂数据,如何高效处理这些复杂数据,成为银行业务发展的核心。
现有技术中,通常通过扫描标准化处理过后的字符串,并将扫描的字符串拆分成运算符,操作数,标识符和非标识符。然后,将分拆出来的字符分别按照运算符运算规则进行处理。
但是,通过现有技术无法确定处理的字符串是否符合源语言的语法规则,导致表达式处理结果获取失败,浪费了处理资源。
发明内容
本发明提供了一种字符串表达式处理方法、装置、设备及存储介质,可以实现快速、准确地对字符串表达式的合法性进行验证,降低了对字符串表达式进行处理的成本,提高了对字符串表达式进行处理的效率。
第一方面,提供了一种字符串表达式处理方法,该方法包括:
获取字符串表达式,并采用词法分析器和语法分析器对字符串表达式的词法和语法进行分析;
当词法和语法均满足预设要求时,获取字符串表达式中的特殊运算符,并采用预设正则表达式将特殊运算符转换为计算机可识别运算符,得到目标表达式;
将目标表达式转换为目标后缀表达式,并通过运算符栈和数据栈对目标后缀表达式进行处理,得到表达式处理结果。
可选的,采用词法分析器对字符串表达式的词法进行分析,包括:
采用词法分析器对字符串表达式中的单词进行识别,得到单词序列;
根据单词序列生成状态转换图,并根据状态转换图对字符串表达式的词法进行分析。
可选的,采用语法分析器对字符串表达式的语法进行分析,包括:
在词法分析结果为符合预设词法规则后,采用语法分析器,根据预设语法分析树对字符串表达式的语法进行分析。
可选的,采用预设正则表达式将特殊运算符转换为计算机可识别运算符,包括:
在预设正则表达式中获取当前子表达式,并判断特殊运算符中是否存在与当前子表达式匹配的字符;
若是,则从预设正则表达式中获取下一子表达式,并将下一子表达式作为当前子表达式;
返回判断特殊运算符中是否存在与当前子表达式匹配的字符,直至预设正则表达式中的各子表达式均匹配成功,或者特殊运算符中不存在与当前子表达式匹配的字符。
可选的,在获取字符串表达式之前,还包括:
获取预设缓冲区,并判断预设缓冲区的存储容量是否小于预设存储容量;
若是,则将字符串表达式存储至预设缓冲区。
可选的,该方法还包括:
获取多个预设处理线程和预设本地线程,每个预设处理线程对应一个处理变量;
对各处理变量进行复制,并将复制后的处理变量作为共享变量存储至预设本地线程;
根据共享变量对字符串表达式进行处理。
第二方面,提供了字符串表达式处理装置,该装置包括:
字符串分析模块,用于获取字符串表达式,并采用词法分析器和语法分析器对字符串表达式的词法和语法进行分析;
目标表达式确定模块,用于当词法和语法均满足预设要求时,获取字符串表达式中的特殊运算符,并采用预设正则表达式将特殊运算符转换为计算机可识别运算符,得到目标表达式;
字符串处理模块,用于将目标表达式转换为目标后缀表达式,并通过运算符栈和数据栈对目标后缀表达式进行处理。
第三方面,提供了一种电子设备,电子设备包括:
至少一个处理器;以及
与至少一个处理器通信连接的存储器;其中,
存储器存储有可被至少一个处理器执行的处理机程序,处理机程序被至少一个处理器执行,以使至少一个处理器能够执行本发明任一实施例的字符串表达式处理方法。
第四方面,提供了一种处理机可读存储介质,处理机可读存储介质存储有处理机指令,处理机指令用于使处理器执行时实现本发明任一实施例的字符串表达式处理方法。
本发明实施例的技术方案,通过获取字符串表达式,并采用词法分析器和语法分析器对字符串表达式的词法和语法进行分析;当词法和语法均满足预设要求时,获取字符串表达式中的特殊运算符,并采用预设正则表达式将特殊运算符转换为计算机可识别运算符,得到目标表达式;将目标表达式转换为目标后缀表达式,并通过运算符栈和数据栈对目标后缀表达式进行处理,得到表达式处理结果的技术手段,可以实现快速、准确地对字符串表达式的合法性进行验证,降低了对字符串表达式进行处理的成本,提高了对字符串表达式进行处理的效率。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例一提供的一种字符串表达式处理方法的流程图;
图2是根据本发明实施例二提供的另一种字符串表达式处理方法的流程图;
图3是根据本发明实施例提供的一种状态转换图;
图4是根据本发明实施例提供的一种预设语法分析树的示意图;
图5是根据本发明实施例提供的一种字符串表达式处理系统的结构示意图;
图6是根据本发明实施例三提供的一种字符串表达式处理装置的结构示意图;
图7是实现本发明实施例四的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1是根据本发明实施例一提供的一种字符串表达式处理方法的流程图,本实施例可适用于对字符串表达式进行处理的情况,该方法可以由字符串表达式处理装置来执行,该字符串表达式处理装置可以采用硬件和/或软件的形式实现,该字符串表达式处理装置可配置于电子设备如处理机中。
如图1所示,本实施例公开的一种字符串表达式处理方法,包括:
S110、获取字符串表达式,并采用词法分析器和语法分析器对字符串表达式的词法和语法进行分析。
在本实施例中,字符串表达式可以包括算术字符串表达式和逻辑字符串表达式。词法分析器可以用于判断字符串表达式的词法是否正确。语法分析器可以用于判断字符串表达式的语法是否正确。
在此步骤,可选的,可以采用词法分析器对字符串表达式中的字符和运算符进行词元编码。然后,可以采用句法分析器检测词元编码结果的正确性。最后,可以采用语法分析器对整个字符表达式的语法进行分析。
S120、当词法和语法均满足预设要求时,获取字符串表达式中的特殊运算符,并采用预设正则表达式将特殊运算符转换为计算机可识别运算符,得到目标表达式。
在本实施例中,特殊运算符可以是不能够被计算机识别的运算符。特殊运算符可以包括++、--、+=和%%等。预设正则表达式中可以包括至少一个子表达式。目标表达式可以是对特殊运算符进行转换后的表达式。
在此步骤,具体的,可以检查字符串表达式中是否存在与任一子表达式匹配的子字符串。如果字符串表达式中存在与任一子表达式匹配的子字符串,则可以从字符串表达式中提取出该子字符串或者,可以采用替换字符串对该子字符串进行替换。
S130、将目标表达式转换为目标后缀表达式,并通过运算符栈和数据栈对目标后缀表达式进行处理,得到表达式处理结果。
在此步骤,具体的,可以采用逆波兰算式算法将目标表达式转换为目标后缀表达式,也即将数字放在运算符的后面。然后,可以基于预先设置的运算符栈和数据栈对目标后缀表达式进行处理。运算符栈可以用于存储运算符。数据栈可以用于存储数字和运算结果。
示例性的,可以从左至右对目标表达式进行扫描,如果扫描到的第一个字符为数值,则可以将第一个字符放入数据栈。如果扫描到的第二个字符也为数值,则可以将第二个字符放入数据栈。如果扫描到的第三个字符为运算符,则可以从数据栈中取出第一个字符和第二个字符。然后,根据该运算符对第一个字符和第二个字符进行计算,并将计算结果存储至数据栈。最后,可以按照后缀表达式的运算规则,重复字符入栈和出栈的操作,直至完成对目标后缀表达式的遍历,得到表达式处理结果。
这样设置的好处在于,通过词法分析器和语法分析器对字符串表达式的词法和语法进行分析,可以实现对字符串表达式的合法性进行校验,避免了浪费处理资源,降低了对字符串表达式进行处理的成本。其次,由于未经处理的字符串表达式是非常复杂的结构,因此通过逆波兰算式算法将目标表达式转换为目标后缀表达式,可以实现将复杂字符串转化为计算机可识别的比较简单易懂的结构,可以实现对复杂字符串表达式进行准确计算,提高了对字符串表达式进行处理的效率。
本实施例的技术方案,通过获取字符串表达式,并采用词法分析器和语法分析器对字符串表达式的词法和语法进行分析;当词法和语法均满足预设要求时,获取字符串表达式中的特殊运算符,并采用预设正则表达式将特殊运算符转换为计算机可识别运算符,得到目标表达式;将目标表达式转换为目标后缀表达式,并通过运算符栈和数据栈对目标后缀表达式进行处理,得到表达式处理结果的技术手段,解决了现有技术无法确定处理的字符串是否符合源语言的语法规则,导致表达式处理结果获取失败,浪费了处理资源的问题,可以实现快速、准确地对字符串表达式的合法性进行验证,降低了对字符串表达式进行处理的成本,提高了对字符串表达式进行处理的效率。
实施例二
图2是根据本发明实施例二提供的另一种字符串表达式处理方法的流程图,本实施例是对上述技术方案的进一步细化,本实施例中的技术方案可以与上述一个或者多个实施例中的各个可选方案结合。
如图2所示,本实施例公开的一种字符串表达式处理方法,包括:
S210、获取字符串表达式,并采用词法分析器对字符串表达式中的单词进行识别,得到单词序列。
在本实施例中,词法分析器可以是基于有限状态自动机的工作原理进行设计的。单词可以包括基本字(如begin、repeat和for)、标识符、常数、运算符和界符等。标识符可以用于表示各种名称,如变量名、数组名和过程名等。界符可以包括逗号、分号和括号等。单词序列可以是多个单词组成的序列。
在此步骤,具体的,可以从左到右对字符串表达式中的字符进行逐个读取,然后采用词法分析器,根据预设构词规则对字符串表达式中的单词进行识别。
在本发明实施例的一个可选实施方式中,在获取字符串表达式之前,还包括:获取预设缓冲区,并判断预设缓冲区的存储容量是否小于预设存储容量;若是,则将字符串表达式存储至预设缓冲区。
在本实施例中,预设缓冲区可以从内存空间中划定出的部分空间。
这样设置的好处在于,相比于从磁盘读取字符串表达式的现有技术,本实施例的技术方案,通过提前将字符串表达式存储至预设缓冲区,提高了对字符串表达式进行处理的效率。
在本发明实施例的另一个可选实施方式中,在采用预设处理线程对字符串表达式进行处理时,会输出多个计算数据。计算数据可以包括中间计算结果和最终计算结果。可以将计算数据存储至预设缓冲区,当预设缓冲区满时,再由预设处理线程从预设缓冲区中取出计算数据进行计算。预设缓冲池还可以用于存储变量。
预设缓冲池可以与磁盘进行数据交换。预设缓冲池以数据页(也即缓存页)为数据单元进行数据存储。每个缓存页都对应一个描述数据块。描述数据块可以用于对存储数据页的描述信息。描述数据块中可以包括数据页编号、数据页所属的表空间,以及数据页在预设缓冲池中的地址等。
这样设置的好处在于,通过设置预设缓冲区,可以提高系统的资源利用率,减少系统中断次数,降低运算器的计算成本,提高了对字符串表达式进行计算的速度。
S220、根据单词序列生成状态转换图,并根据状态转换图对字符串表达式的词法进行分析。
在本实施例中,可以根据单词序列,确定五元函数。然后,可以根据五元函数确定状态转换图。状态转换图可以用于判断字符串表达式的词法的词法是否正确。
具体的,五元函数的公式可以如下所示:
M=(Q,Σ,δ,q,F)
其中,M为有限状态自动机,Q为非空有穷集合,Σ为输入字母表,δ为状态转移函数,q为初始状态,F为M的终止状态集合。字母表可以是对各字符串表达式中的字符进行汇集得到的表。
示例性的,图3是根据本发明实施例提供的一种状态转换图。如图3所示,包含a和b两种字母,以及1、2和3三种状态。如果字符串表达式可以通过状态转换图,则可以认为字符串表达式的词法正确。
可选的,有限状态自动机拥有有限数量的状态,每个状态可以迁移到零个或多个状态,可以通过输入的字符串表达式决定执行哪个状态的迁移。字符串表达式对应有限个状态,每个状态代表不同含义。本实施例的技术方案,可以实现在任意状态下,从输入的字符串表达式读入一个字符,并根据当前状态和当前字符转到新的状态,直至将字符串表达式中的各字符标记为不同状态。
S230、在词法分析结果为符合预设词法规则后,采用语法分析器,根据预设语法分析树对字符串表达式的语法进行分析。
在本实施例中,可以根据递归下降法确定语法分析公式。然后,可以根据语法分析公式确定预设语法分析树,预设语法分析树可以用于对字符串表达式的语法进行分析。
示例性的,语法分析公式可以如下所示:
G(E):E→i|E+E|E-E|E×E|E/E|(E)
通过上述语法分析公式可以得到加法、减法、乘法和除法是合法的。
图4是根据本发明实施例提供的一种预设语法分析树的示意图。基于上述语法分析公式,如果表达式为i×i+i,则预设语法分析树可以如图4所示。
可选的,可以通过递归下降法对字符串表达式的句法进行分析。文法的每个非终结符对应一个递归过程。分析过程就是从文法开始符出发执行一组递归过程,这样向下推导直到推出句子。或者,可以从根结点出发,自顶向下为输入串寻找一个最左匹配序列,建立一棵语法分析树。在不含左递归和每个非终结符的所有候选式推导出的终结符号串的首字符集都两两不相交的条件下,就可能构造一个不带回溯的自顶向下的分析程序。
S240、当词法和语法均满足预设要求时,获取字符串表达式中的特殊运算符,并采用预设正则表达式将特殊运算符转换为计算机可识别运算符,得到目标表达式。
在本发明实施例的一个可选实施方式中,采用预设正则表达式将特殊运算符转换为计算机可识别运算符,包括:在预设正则表达式中获取当前子表达式,并判断特殊运算符中是否存在与当前子表达式匹配的字符;若是,则从预设正则表达式中获取下一子表达式,并将下一子表达式作为当前子表达式;返回判断特殊运算符中是否存在与当前子表达式匹配的字符,直至预设正则表达式中的各子表达式均匹配成功,或者特殊运算符中不存在与当前子表达式匹配的字符。
在本实施例中,当前子表达式的结束位置可以是下一子表达式的开始位置。如果当前子表达式是零宽度,则在当前子表达式匹配完成后,下一子表达式匹配的位置还是当前子表达式匹配的位置。
具体的,如果特殊运算符中不存在与当前子表达式匹配的字符,则可以认为字符串表达式匹配失败。如果预设正则表达式中的各子表达式均匹配成功,则可以采用替换字符对特殊运算符进行替换。例如,如果特殊运算符为++,则可以将所述特殊运算符替换为+1。或者,如果字符串表达式为2%%,则可以将%%替换为%100,得到2%100=2的目标表达式。
S250、将目标表达式转换为目标后缀表达式,并通过运算符栈和数据栈对目标后缀表达式进行处理,得到表达式处理结果。
在本实施例中,可选的,可以通过梯度下降法确定表达式处理结果。
具体的,可以通过下述公式确定表达式处理结果:
argminf(x)
其中,argmin为无约束优化模型,f(x)为损失函数,x为多维向量。f(x)相关的计算公式可以如下所示:
其中,α为步长,为梯度函数。
梯度下降法的原理如下:首先,生成一个初始值。然后,在函数图像上,沿着初始值对应梯度(或者是近似梯度)的反方向,按照规定步长进行迭代搜索,得到函数的局部极值,也即表达式处理结果。
这样设置的好处在于,通过梯度近似下降法,可以实现对含字母表达式进行近似求值。
可选的,该方法还包括:获取多个预设处理线程和预设本地线程,每个预设处理线程对应一个处理变量;对各处理变量进行复制,并将复制后的处理变量作为共享变量存储至预设本地线程;根据共享变量对字符串表达式进行处理。
在本实施例中,可以通过预设本地线程,解决多线程的并发访问的问题。在编写多线程代码时,可以把不安全的变量封装进预设本地线程。预设本地线程为每一个预设处理线程都提供了一份变量,因此可以同时访问而互不影响。
预设本地线程工作原理是将一个共享变量存进该容器,也即在线程内部拷贝了一个副本。共享变量都是存在当前预设处理线程中的。当操作预设本地线程变量里面的共享变量时,实际操作的是存在于预设处理线程中的变量副本,该变量副本对于每一个线程都是独立的,从而实现了变量的隔离性,保证了线程安全。对于不同的预设处理线程,可以使用同一个预设本地线程为关键字,以存储不同的数据。可以通过不会覆盖旧值的开放地址法解决预设本地线程映射冲突的问题。当哈希冲突时,预设本地线程会重新找一个槽位放置新的实体对象,因此可以将预设本地线程设置为静态类型。
这样设置的好处在于,在拥有共享数据的多条线程并行执行的程序中,通过同步机制保证各个线程都可以正常且正确的执行,避免了出现数据污染等意外情况。
本实施例的技术方案,通过获取字符串表达式,并采用词法分析器对字符串表达式中的单词进行识别,得到单词序列;根据单词序列生成状态转换图,并根据状态转换图对字符串表达式的词法进行分析;在词法分析结果为符合预设词法规则后,采用语法分析器,根据预设语法分析树对字符串表达式的语法进行分析;当词法和语法均满足预设要求时,获取字符串表达式中的特殊运算符,并采用预设正则表达式将特殊运算符转换为计算机可识别运算符,得到目标表达式;将目标表达式转换为目标后缀表达式,并通过运算符栈和数据栈对目标后缀表达式进行处理,得到表达式处理结果的技术手段,解决了现有技术无法确定处理的字符串是否符合源语言的语法规则,导致表达式处理结果获取失败,浪费了处理资源的问题,可以实现快速、准确地对字符串表达式的合法性进行验证,降低了对字符串表达式进行处理的成本,提高了对字符串表达式进行处理的效率。
图5是根据本发明实施例提供的一种字符串表达式处理系统的结构示意图。
在上述实施方式的基础上,本发明的技术方案提供了一种字符串表达式处理系统。如图5所示,字符串表达式处理系统中包括输入接口管理模块、合法性检验管理模块和运算管理模块。输入接口管理模块可以用于对输入的字符串表达式进行处理。合法性检验管理模块可以包括词法分析子模块、句法分析子模块和语法分析子模块。运算管理模块可以包括操作符子模块和数字子模块。函数管理模块用于对该系统的函数配置进行管理。线程管理模块用于管理多线程并发操作。缓冲管理模块用于提高整个系统运行和执行速度。
可选的,字符串表达式处理系统对应的工作流程如下:获取输入的字符串表达式。然后,可以通过合法性检验模块对上述字符串表达式进行词法、句法和语法分析。如果词法、句法或语法不合法,则可以向用户发送异常告警信息。如果词法、句法或语法均合法,则可以采用多线程并发处理字符串表达式。在对字符串表达式进行计算的过程中,可以将过程数据存储至预设缓冲池。最后,可以采用梯度下降法对字符串表达式进行计算,得到表达式处理结果。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
实施例三
图6是根据本发明实施例三提供的一种字符串表达式处理装置的结构示意图。如图6所示,该装置包括:
字符串分析模块61、目标表达式确定模块62和字符串处理模块63。
其中,字符串分析模块61,用于获取字符串表达式,并采用词法分析器和语法分析器对字符串表达式的词法和语法进行分析;
目标表达式确定模块62,用于当词法和语法均满足预设要求时,获取字符串表达式中的特殊运算符,并采用预设正则表达式将特殊运算符转换为计算机可识别运算符,得到目标表达式;
字符串处理模块63,用于将目标表达式转换为目标后缀表达式,并通过运算符栈和数据栈对目标后缀表达式进行处理。
本发明实施例提供的技术方案,通过字符串分析模块、目标表达式确定模块和字符串处理模块相互配合,解决了现有技术无法确定处理的字符串是否符合源语言的语法规则,导致表达式处理结果获取失败,浪费了处理资源的问题,可以实现快速、准确地对字符串表达式的合法性进行验证,降低了对字符串表达式进行处理的成本,提高了对字符串表达式进行处理的效率。
可选的,字符串分析模块61包括:
单词序列确定单元,用于采用词法分析器对字符串表达式中的单词进行识别,得到单词序列;
词法分析单元,用于根据单词序列生成状态转换图,并根据状态转换图对字符串表达式的词法进行分析;
语法分析单元,用于在词法分析结果为符合预设词法规则后,采用语法分析器,根据预设语法分析树对字符串表达式的语法进行分析。
可选的,目标表达式确定模块62包括:
字符匹配单元,用于在预设正则表达式中获取当前子表达式,并判断特殊运算符中是否存在与当前子表达式匹配的字符;
当前子表达式更新单元,用于如果特殊运算符中存在与当前子表达式匹配的字符,则从预设正则表达式中获取下一子表达式,并将下一子表达式作为当前子表达式;
循环判断单元,用于返回判断特殊运算符中是否存在与当前子表达式匹配的字符,直至预设正则表达式中的各子表达式均匹配成功,或者特殊运算符中不存在与当前子表达式匹配的字符。
可选的,该装置还包括表达式存储模块,该模块包括:
表达式存储单元,用于获取预设缓冲区,并判断预设缓冲区的存储容量是否小于预设存储容量;若是,则将字符串表达式存储至预设缓冲区。
可选的,该装置还包括变量存储模块,该模块包括:
线程获取单元,用于获取多个预设处理线程和预设本地线程,每个预设处理线程对应一个处理变量;
共享变量存储单元,用于对各处理变量进行复制,并将复制后的处理变量作为共享变量存储至预设本地线程;
表达式处理单元,用于根据共享变量对字符串表达式进行处理。
本发明实施例所提供的字符串表达式处理装置可执行本发明任意实施例所提供的字符串表达式处理方法,具备执行方法相应的功能模块和有益效果。
实施例四
图7示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字处理机,诸如,膝上型处理机、台式处理机、工作台、个人数字助理、服务器、刀片式服务器、大型处理机、和其它适合的处理机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的处理装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图7所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的处理机程序,处理器11可以根据存储在只读存储器(ROM)12中的处理机程序或者从存储单元18加载到随机访问存储器(RAM)13中的处理机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的处理机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和处理能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)处理芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如字符串表达式处理方法。
在一些实施例中,字符串表达式处理方法可被实现为处理机程序,其被有形地包含于处理机可读存储介质,例如存储单元18。在一些实施例中,处理机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当处理机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的字符串表达式处理方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行字符串表达式处理方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、处理机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个处理机程序中,该一个或者多个处理机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的处理机程序可以采用一个或多个编程语言的任何组合来编写。这些处理机程序可以提供给通用处理机、专用处理机或其他可编程数据处理装置的处理器,使得处理机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。处理机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,处理机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的处理机程序。处理机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,处理机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式处理机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的处理系统(例如,作为数据服务器)、或者包括中间件部件的处理系统(例如,应用服务器)、或者包括前端部件的处理系统(例如,具有图形用户界面或者网络浏览器的用户处理机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的处理系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
处理系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的处理机上运行并且彼此具有客户端-服务器关系的处理机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云处理服务器或云主机,是云处理服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (10)

1.一种字符串表达式处理方法,其特征在于,所述方法,包括:
获取字符串表达式,并采用词法分析器和语法分析器对所述字符串表达式的词法和语法进行分析;
当所述词法和语法均满足预设要求时,获取所述字符串表达式中的特殊运算符,并采用预设正则表达式将所述特殊运算符转换为计算机可识别运算符,得到目标表达式;
将所述目标表达式转换为目标后缀表达式,并通过运算符栈和数据栈对所述目标后缀表达式进行处理,得到表达式处理结果。
2.根据权利要求1所述的方法,其特征在于,采用词法分析器对所述字符串表达式的词法进行分析,包括:
采用词法分析器对所述字符串表达式中的单词进行识别,得到单词序列;
根据所述单词序列生成状态转换图,并根据所述状态转换图对所述字符串表达式的词法进行分析。
3.根据权利要求2所述的方法,其特征在于,采用语法分析器对所述字符串表达式的语法进行分析,包括:
在词法分析结果为符合预设词法规则后,采用语法分析器,根据预设语法分析树对所述字符串表达式的语法进行分析。
4.根据权利要求1所述的方法,其特征在于,所述采用预设正则表达式将所述特殊运算符转换为计算机可识别运算符,包括:
在所述预设正则表达式中获取当前子表达式,并判断所述特殊运算符中是否存在与所述当前子表达式匹配的字符;
若是,则从预设正则表达式中获取下一子表达式,并将所述下一子表达式作为当前子表达式;
返回判断所述特殊运算符中是否存在与所述当前子表达式匹配的字符,直至所述预设正则表达式中的各子表达式均匹配成功,或者所述特殊运算符中不存在与当前子表达式匹配的字符。
5.根据权利要求1所述的方法,其特征在于,在获取字符串表达式之前,还包括:
获取预设缓冲区,并判断所述预设缓冲区的存储容量是否小于预设存储容量;
若是,则将字符串表达式存储至所述预设缓冲区。
6.根据权利要求5所述的方法,其特征在于,所述方法,还包括:
获取多个预设处理线程和预设本地线程,每个预设处理线程对应一个处理变量;
对各所述处理变量进行复制,并将复制后的处理变量作为共享变量存储至所述预设本地线程;
根据所述共享变量对所述字符串表达式进行处理。
7.一种字符串表达式处理装置,其特征在于,包括:
字符串分析模块,用于获取字符串表达式,并采用词法分析器和语法分析器对所述字符串表达式的词法和语法进行分析;
目标表达式确定模块,用于当所述词法和语法均满足预设要求时,获取所述字符串表达式中的特殊运算符,并采用预设正则表达式将所述特殊运算符转换为计算机可识别运算符,得到目标表达式;
字符串处理模块,用于将所述目标表达式转换为目标后缀表达式,并通过运算符栈和数据栈对所述目标后缀表达式进行处理。
8.根据权利要求1所述的装置,其特征在于,所述字符串分析模块,包括:
单词序列确定单元,用于采用词法分析器对所述字符串表达式中的单词进行识别,得到单词序列;
词法分析单元,用于根据所述单词序列生成状态转换图,并根据所述状态转换图对所述字符串表达式的词法进行分析;
语法分析单元,用于当所述词法分析结果为符合预设词法规则时,采用语法分析器,根据预设语法分析树对所述字符串表达式的语法进行分析。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的字符串表达式处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-6中任一项所述的字符串表达式处理方法。
CN202311658281.5A 2023-12-05 2023-12-05 一种字符串表达式处理方法、装置、设备及存储介质 Pending CN117610555A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311658281.5A CN117610555A (zh) 2023-12-05 2023-12-05 一种字符串表达式处理方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311658281.5A CN117610555A (zh) 2023-12-05 2023-12-05 一种字符串表达式处理方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN117610555A true CN117610555A (zh) 2024-02-27

Family

ID=89956021

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311658281.5A Pending CN117610555A (zh) 2023-12-05 2023-12-05 一种字符串表达式处理方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN117610555A (zh)

Similar Documents

Publication Publication Date Title
JP7223785B2 (ja) 時系列ナレッジグラフ生成方法、装置、デバイス及び媒体
EP3819785A1 (en) Feature word determining method, apparatus, and server
US20230004721A1 (en) Method for training semantic representation model, device and storage medium
CN114579104A (zh) 数据分析场景的生成方法、装置、设备及存储介质
CN112528641A (zh) 建立信息抽取模型的方法、装置、电子设备和可读存储介质
CN105260357A (zh) 基于哈希有向图的敏感词检查方法和设备
EP4174683A1 (en) Data evaluation method and apparatus, training method and apparatus, and electronic device and storage medium
EP3920074A2 (en) Method for industry text increment, related apparatus, and computer program product
CN109726292A (zh) 面向大规模多语种数据的文本分析方法和装置
CN116303013A (zh) 源码分析方法、装置、电子设备及存储介质
CN117610555A (zh) 一种字符串表达式处理方法、装置、设备及存储介质
CN114328956B (zh) 文本信息的确定方法、装置、电子设备及存储介质
CN115576983A (zh) 一种语句生成方法、装置、电子设备及介质
CN114443802A (zh) 一种接口文档处理方法、装置、电子设备和存储介质
CN111563363B (zh) 一种超文本标记语言文档内容生成及解析方法
CN110852077B (zh) 动态调整Word2Vec模型词典的方法、装置、介质及电子设备
CN116737520B (zh) 一种日志数据的数据编织方法、装置、设备及存储介质
CN109710419A (zh) 基于文本分析的mpi代码通信过程解析方法
CN113971216B (zh) 数据处理方法、装置、电子设备和存储器
CN113887192B (zh) 文本匹配方法、装置及存储介质
CN115934101A (zh) 一种接口文档生成方法、装置、介质以及电子设备
CN115146070A (zh) 键值生成方法、知识图谱生成方法、装置、设备及介质
CN115525774A (zh) 一种图谱的生成方法、装置、电子设备和存储介质
CN116414856A (zh) 一种数据查询方法、装置、电子设备和存储介质
CN117667976A (zh) 一种数据处理方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination