CN113419742B - 一种字符串编码和查找方法 - Google Patents

一种字符串编码和查找方法 Download PDF

Info

Publication number
CN113419742B
CN113419742B CN202110824063.9A CN202110824063A CN113419742B CN 113419742 B CN113419742 B CN 113419742B CN 202110824063 A CN202110824063 A CN 202110824063A CN 113419742 B CN113419742 B CN 113419742B
Authority
CN
China
Prior art keywords
character string
string
character
sensitive
index
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.)
Active
Application number
CN202110824063.9A
Other languages
English (en)
Other versions
CN113419742A (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.)
Beijing Empyrean Technology Co Ltd
Original Assignee
Beijing Empyrean 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 Beijing Empyrean Technology Co Ltd filed Critical Beijing Empyrean Technology Co Ltd
Priority to CN202110824063.9A priority Critical patent/CN113419742B/zh
Publication of CN113419742A publication Critical patent/CN113419742A/zh
Application granted granted Critical
Publication of CN113419742B publication Critical patent/CN113419742B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/323Translation or migration, e.g. logic to logic, hardware description language [HDL] translation or netlist translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • G06F30/367Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

一种字符串编码和查找方法,包括以下步骤:建立字符串池,存储电路结构中所有的字符串,并建立字符串内存位置索引表;解析电路网表中的字符串,并存入字符串池;对网表中的字符串进行整形编码;根据上下文环境和语法规定的大小写敏感规则,查找字符串。本发明的字符串编码和查找方法,适用于大规模模拟和数字电路的仿真。它可以有效地提高电路仿真过程查找各种字符串的速度,从而大大减少建立电路拓扑结构的时间,加速了电路的整体设计周期。

Description

一种字符串编码和查找方法
技术领域
本发明涉及集成电路自动化技术领域,特别是涉及电路仿真过程中的对网表中电路的解析和拓扑构建过程。
背景技术
电路仿真是集成电路功能验证的重要手段。由电路设计图(Schematic)产生的网表文件,作为电路仿真的主要输入,需要将其进行解析并且构建出电路的拓扑结构,然后才能建立电路方程组并进行求解。电路拓扑结构的构建,是一个复杂且耗时的过程。随着集成电路规模的急剧增加,各层电路都可能会定义数量巨大的参数、器件和模型等,它们的名字都是以字符串形式表示的。这些字符串的数量非常庞大,尤其是在后仿电路中,可能有上千万甚至更多的寄生电阻电容(RC)电路,对应的器件名称和参数名称都需要存储,在网表解析过程中产生的字符串数量十分惊人。
相比整形的比较,字符串的比较非常耗时,可能成几倍甚至几十倍的关系。另外,字符串的频繁产生和释放,不仅会消耗大量的时间和内存,更重要的是会产生内存碎片,进而影响整个程序的运行速度。而且,由于不连续的存放,程序在寻址过程中不得不跳跃进行,大大降低了缓存的命中率,也会减慢程序的运行速度。因此,设计一种快速高效的字符串存储和查找方法,对电路仿真的验证工作具有很大的影响,对于实际电路设计也具有重要意义。
发明内容
为了解决现有技术存在的不足,本发明的目的在于提供一种字符串编码和查找方法,适用于大规模模拟和数字电路的仿真。它可以有效地提高电路仿真过程查找各种字符串的速度,从而大大减少建立电路拓扑结构的时间,加速了电路的整体设计周期。
为实现上述目的,本发明提供的一种字符串编码和查找方法,包括以下步骤:
建立字符串池,存储电路结构中所有的字符串,并建立字符串内存位置索引表;
解析电路网表中的字符串,并存入字符串池;
对网表中的字符串进行整形编码;
根据上下文环境和语法规定的大小写敏感规则,查找字符串。
进一步地,所述建立字符串池,存储电路结构中所有的字符串,并建立字符串内存位置索引表的步骤,还包括,
所述字符串池包括一块连续的内存,用于存储电路结构定义中所有需要记录的名称,在所述名称插入字符串池之前,根据是否包含大写字符,确定只插入原始字符串或插入原始字符串以及转为小写后的字符串;
所述索引表,用于记录原始字符串以及将原始字符串转为小写后的字符串在字符串池中的内存位置。
进一步地,所述解析电路网表中的字符串,并存入字符串池的步骤,还包括,
电路网表在解析过程中,需要对电路中的各种器件、端口、参数、模型等的名称进行存储;
所述网表中的字符串,包括处于特定上下文环境下的字符串;
如果字符串不包含大写字符,则将原始字符串直接存储到字符串池中,否则,将原始字符串以及转为小写后的字符串都存储到字符串池中。
进一步地,所述编码信息包括:
采用一级索引或二级索引;
字符串所处上下文是否大小写敏感;
字符串中是否包含大写字符;
字符串的索引值。
进一步地,
所述字符串的索引值,包含敏感索引值和非敏感索引值,所述敏感索引值表示原始字符串的索引值,所述非敏感索引值表示转为小写后的字符串的索引值;
对于不包含大写字符的字符串,其编码中敏感索引值和非敏感索引值是一样的;
对于包含大写字符的字符串,其编码敏感索引值和非敏感索引值是不一样的。
进一步地,所述根据上下文环境和语法规定的大小写敏感规则,查找字符串的步骤,还包括,
通过比较两个整形编码进行查找字符串;
比较的规则包括,当两个编码都为大小写敏感时,比较各自的敏感索引值,否则,比较各自的非敏感索引值。
更进一步地,所述语法规定的大小写敏感规则,包括:
如果定义时大小写敏感,使用时也大小写敏感,则比较各自的原始字符串;否则,进行模糊匹配,比较各自转为小写后的字符串。
为实现上述目的,本发明还提供一种电子设备,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行如上文所述的字符串编码和查找方法的步骤。
为实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序运行时执行如上文所述的字符串编码和查找方法的步骤。
本发明的字符串编码和查找方法,具有以下有益效果:
1)结合了字符串是否包含大写字符以及上下文环境中是否大小写敏感两种信息,对各种语法各种规则都适应。由于语法规则的不同以及混合语法的使用,一个名称在定义和使用时的上下文环境可能会不相同,因此,传统的比较方法,不仅需要进行字符串的直接比较,还要判断各种复杂的组合条件。本发明的方法不管在哪种语境下,都可以使用,并且在解析编码以及比较是否相等的过程都非常迅速高效。
2)相同字符串只保存一次,所有的查找过程通过整形编码来完成。传统的字符串比较方法,至少需要O(nlogn)的时间复杂度,而整形编码的比较,除了简单的逻辑判断,最终只是比较两个整形,时间复杂度降低了一个量级。因此,本发明的方法大大地提高了字符串的查找速度,而且还减少了产生大量字符串所需要的内存,间接地加快了系统运行的速度。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:
图1为根据本发明的字符串编码和查找方法流程图;
图2为根据本发明实施例一整形编码示意图;
图3为根据本发明的实施例一一级索引的第一种编码示意图;
图4为根据本发明的实施例一一级索引的第二种编码示意图;
图5为根据本发明的实施例一二级索引的编码示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
实施例1
图1为根据本发明的字符串编码和查找方法流程图,下面将参考图1,对本发明的字符串编码和查找方法进行详细描述。
首先,在步骤101,建立字符串池,连续存储所有的字符串,并建立索引表。
优选地,所述的字符串池(pool),是指开辟一块连续的内存,用于存储电路结构定义中所有需要记录的名称,如参数名称、端口名称、器件名称、模型名称等。这些名称在插入字符串池之前,需要根据是否包含大写字符(在插入时只看是否包含大写字符,查找时才看大小写是否敏感),确定只插入原始字符串或插入原始字符串以及转为小写后的字符串。
优选地,所述索引表,是用于记录原始字符串以及将原始字符串转为小写后的字符串在字符串池中的内存位置。每个索引值用整形表示,相当于数组的下标。当一个新的字符串插入到缓存池时,就确定了一个唯一的位置标识,这个标识可以以O(1)的时间复杂度找到字符串。每次在插入一个新字符串之前,先查找该字符串是否已经在字符串池了,如果找到,则直接返回对应的索引值;如果没找到,则插入到字符串池中最后一个字符串的后面,并返回插入的位置。
在步骤102,解析网表中的字符串,并存入字符串池。
优选地,如果字符串不包含大写字符,则将原始字符串直接存储到字符串池中;否则,将原始字符串以及转为小写后的字符串都存储到字符串池中。
优选地,所述网表中的字符串,是指处于特定上下文环境下的字符串。根据网表语法的大小写敏感规则,字符串所处的上下文环境中大小写是否敏感的属性以及字符串本身是否包含大写字符,都会影响查找时的比较方法。
本发明实施例中,电路网表在解析过程中,需要对电路中的各种器件、端口、参数、模型等的名称进行存储,以便后续建立拓扑结构中进行查找等操作。
在步骤103,对网表中的字符串进行整形编码。
优选地,编码信息包含四项内容:采用一级索引还是二级索引;字符串所处上下文是否大小写敏感;字符串中是否包含大写字符;字符串的索引值。其中,字符串的索引值,包含敏感索引值和非敏感索引值。敏感索引值表示原始字符串的索引值,非敏感索引值表示转为小写后的字符串的索引值。对于不包含大写字符的字符串,其编码中敏感索引值和非敏感索引值是一样的;对于包含大写字符的字符串,其编码敏感索引值和非敏感索引值是不一样的。
优选地,所述整形编码,需要使用8个字节,从高字节开始,第1个字节用于存储一些标识,后7个字节用于存储索引值。其中,第1个字节使用了3个位(bit),分别表示三项内容:采用一级索引还是二级索引;字符串所处上下文是否大小写敏感;字符串中是否包含大写字符;后7个字节,存储的是字符串的一级索引值或二级索引值,每个索引值都包含敏感索引值和非敏感索引值,敏感索引值和非敏感索引值相同时则只存储一个值。
本发明实施例中,基于步骤102中的比较规则,本发明在对字符串进行整形编码的时候,不仅包含字符串的索引值(包括敏感索引值和非敏感索引值),字符串是否含有大写字符以及上下文环境中大小写是否敏感这两项信息也都包含进去,使得查找字符串的时候,直接通过整形编码就可以得到所有的信息。
本发明实施例中,所述的整形编码,是结合字符串是否包含大写字符以及是否大小写敏感的信息,及其在字符串池中的索引位置,按照不同的方案将索引位置信息保存在一个整形变量中。如图2所示,一个整形编码的基本数据占用8个字节,第1个字节用作标识(flag),后7个字节(Bits 55~0)保存字符串在字符串池中的内存位置索引值(index),且这个索引值可能是一级索引值,也可能是二级索引值。
第一个字节中的flag,有三个,含义如下:
a)direct,表示采用一级索引还是二级索引。
该flag为1时,表明采用一级索引,index即为pool中的偏移量。一级索引的使用包括以下两种情况
(1)如果字符串全是小写,那么7Bytes全部用于保存index,其编码格式如图3所示;
(2)如果字符串中含有大写,那么需要存储其原始字符串和对应的转为小写的字符串,对应的索引值分别为sensitive index和insensitive index。那么前3Bytes(Bits55~32)用于表示sensitive index,后4Bytes(Bits 31~0))用于表示insensitiveindex,其编码格式如图4所示。
该flag为0时,表示采用二级索引,说明字符串中含有大写,且其位于pool中的sensitive index已经超过了2^24=16777216,因为一级索引中使用3个Bytes存储,16777216是所能表示的最大范围。此时需要另外建立一个存储<sensitive index,insensitive index>对(pair)的数组,7Bytes存储的是这个pair数组的下标(offset)。其编码格式如图5所示。
b)sensitive,表示是否大小写敏感。
1:该字符串定义在sensitive的context中。
0:该字符串定义在insensitive的context中。
c)all_lowercase,表示字符串是否全部小写。
1:表明字符串全部小写,注意,这时候direct flag肯定为1,即肯定采用一级索引。
0:表明字符串含有大写字母,这时候可能采用一级索引,也可能采用二级索引。
在步骤104,给定一个字符串,根据上下文环境和语法规定的大小写敏感规则,查找是否存在。
优选地,经过整形编码之后,查找字符串的过程,实际上是两个整形编码的比较过程,比较的规则为:两个编码都为大小写敏感时,比较各自的敏感索引值,否则,比较各自的非敏感索引值。
优选地,所述语法规定的大小写敏感规则,具体为:如果定义时大小写敏感,使用时也大小写敏感,那么查找时必须严格匹配,即需要比较各自的原始字符串;否则,只需要模糊匹配,即比较各自转为小写后的字符串即可。
本发明实施例中,不同的语法规则下,各种名称的大小写敏感属性都可能不同。而且,同一个网表中还可以混合使用不同的语法,即各模块中可以自定义设置名称的大小写敏感属性。这就要求字符串查找时,不仅要比较字符串本身,还要根据源字符串与目标字符串的大小写属性,确定在语法规则定义的上下文(context)中是否相同。具体的比较规则为:如果源字符串和目标字符串至少有一个包含大写字符,且源字符串和目标字符串都大小写敏感,则直接比较源字符串和目标字符串,否则,将源字符串和目标字符串转为小写后再比较。
本发明实施例中,对整形编码进行解析,然后查找对应的字符串。解析的过程主要是根据是否sensitive flag值得到对应的index,而查找字符串的过程就是对整形编码的比较操作。
对整形编码进行解码的过程,是编码过程的一个逆操作,具体步骤如下:
a>如果sensitive flag为1,查找sensitive index,转步骤b>;否则,查找insensitive index,转步骤c>;
b>如果direct flag为1,查找direct sensitive index;转步骤d>;否则,查找indirect sensitive index,转步骤e>;
c>如果direct flag为1,查找direct insensitive index,转步骤f>;否则,查找indirect insensitive index,转步骤g>;
d>如果all_lowercase flag为1,取低7Bytes的值;否则,取中间3Bytes的值;
e>计算低7Bytes的值(即offset),作为其在pair数组的下标,找到位于pair数组中的pair,取pair的sensitive index值。
f>如果all_lowercase flag为1,取低7Bytes的值;否则,取低4Bytes的值;
g>计算低7Bytes的值(即offset),作为其在pair数组的下标,找到位于pair数组中的pair,取pair的insensitive index值。
对整形编码进行比较的过程,需要查看源整形编码与目标整形编码的两者的sensitive flag,如果都为1,即都是大小写敏感,那么就比较两者的sensitive index;否则,比较两者的insensitive index。
下面结合一具体实施例对本发明的字符串编码和查找方法做进一步的说明。
本发明的一个实施例中,遇到字符串“a”,且在context中为insensitive,因为全部是小写,只需加入其源字符串;遇到字符串“Ab”,且在context中为sensitive,因为包含大写字符,需插入字符串“Ab”和转为小写的字符串“ab”;中间插入大量字符串后,假设pool的字符串总数刚好超过16777216;插入字符串“ac”,且在context中为sensitive,因为全部是小写,只需加入其源字符串;遇到字符串“BC”,且在context中为insensitive,因为包含大写字符,需插入字符串“BC”和转为小写的字符串“bc”。
本发明的一个实施例中,字符串“a”的index为0,字符串“a”的index为0;字符串“Ab”的index为1;字符串“ab”的index为2;“ac”的index为16777216;字符串“BC”的index为16777217;字符串“bc”的index为16777218。
本发明的一个实施例中,对字符串“a”且context中为insensitive进行编码,因为全部是小写,all_lowercase flag设为1,direct flag设为1,采用一级索引,低7Bytes存储的index的值为0;对字符串“Ab”且在context中为sensitive进行编码,因为包括大写字符,包含sensitive index和insensitive index,all_lowercase flag设为0,direct flag设为1,采用一级索引,中间3Bytes存储的值为1,即“Ab”的index,且低4Bytes存储的值为2,即“ab”的index;中间插入的大量字符串的编码过程,步骤不赘述;对字符串“ac”且context中为sensitive进行编码,因为全部是小写,all_lowercase flag设为1,direct flag设为1,采用一级索引,低7Bytes存储的index的值为16777216;对字符串“BC”且在context中为insensitive进行编码,因为包括大写字符,包含sensitive index和insensitive index,all_lowercase flag设为0,direct flag设为0,采用二级索引,首先在pair数组中插入一个pair,该pair保存了两个值,sensitive index为16777217,即“BC”的index,insensitiveindex为16777218,即“bc”的index。该pair在pair数组的下标值为0,即offset为0,将offset的值写入低7Bytes中。
因为查找的context与定义时的context可能不一致,在比较的时候会有多种组合,而比较的逻辑非常清晰简单,关键在于通过解析整形编码得到对应的sensitive index和insensitive index。因此,本步骤只对解析过程进行举例说明。对字符串“a”且context中为insensitive的整形编码进行解析,因为direct flag为1,采用一级索引,又因为all_lowercase flag为1,则直接读取低7Bytes的值即为该编码的insensitive index,也同时是这个编码的sensitive index;对字符串“Ab”且在context中为sensitive的整形编码进行解析,因为direct flag为1,采用一级索引,又因为all_lowercase flag为0,则直接读取中间3Bytes的值作为sensitive index,读取低4Bytes的值作为insensitive index;中间插入的大量字符串的整形编码的解析过程,步骤不赘述;对字符串“ac”且context中为sensitive的整形编码进行解析,因为direct flag为1,采用一级索引,又因为all_lowercase flag为1,则直接读取低7Bytes的值即为该编码的insensitive index,也同时是这个编码的sensitive index;对字符串“BC”且在context中为insensitive的整形编码进行解析,因为direct flag为0,采用二级索引,又因为all_lowercase flag为0,读取低7Bytes存储的offset的值,将其作为pair数组的下标,得到对应的pair。取pair的第一个值,即sensitive index,第二个值即为insensitive index。
本发明提供一种快速高效的基于大小写敏感规则的字符串编码和查找方法,特别地,本发明针对目前集成电路结构庞大、器件和参数名字数量暴增从而导致建立电路拓扑结构时间过长的问题,提出了一种以整形编码替代字符串表示并实现快速查找的方法。在电路网表的解析过程中,创建一个全局的字符串池,对用到的各种字符串进行连续存储,然后根据其在字符串池中的内存位置索引值进行整形编码,并提供了相应的解码方法来获取位于字符串池中的位置,从而得到相应的字符串。
本发明提出了一种基于大小写敏感规则的字符串编码和查找方法,为电路中每个包含大小写属性的字符串都建立了一个唯一的整形编码(ID),在之后构建电路拓扑结构甚至计算电路方程的过程中,都可以用这个ID代替字符串,大大减少了字符串查找过程中的比较时间,也减少了字符串在创建和释放的次数,从而极大地提高了电路拓扑结构的建立速度,降低了电路仿真的整体时间。它可以加快建立电路拓扑结构的速度,保证了电路仿真验证工作的高效性。进一步讲本发明通过对电路网表定义的参数、端口、器件、模型等名称进行整形编码,以整形替代字符串的表示,加快了字符串的查找速度,从而大大减少了构建电路拓扑结构的时间,提高了仿真结果的验证效率,缩短电子电路的设计周期,适应了电路规模的急剧增长。
本发明的一个实施例中,还提供一种电子设备,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行如上文所述的字符串编码和查找方法的步骤。
本发明的一个实施例中,还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序运行时执行如上文所述的字符串编码和查找方法的步骤。
本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种字符串编码和查找方法,其特征在于,包括以下步骤:
建立字符串池,存储电路结构中所有的字符串,并建立字符串内存位置索引表;
解析电路网表中的字符串,并存入字符串池;
对网表中的字符串进行整形编码;
根据上下文环境和语法规定的大小写敏感规则,查找字符串;
所述根据上下文环境和语法规定的大小写敏感规则,查找字符串的步骤,还包括,
通过比较两个整形编码进行查找字符串;
比较的规则包括,当两个编码都为大小写敏感时,比较各自的敏感索引值,否则,比较各自的非敏感索引值。
2.根据权利要求1所述的字符串编码和查找方法,其特征在于,所述建立字符串池,存储电路结构中所有的字符串,并建立字符串内存位置索引表的步骤,还包括,
所述字符串池包括一块连续的内存,用于存储电路结构定义中所有需要记录的名称,在所述名称插入字符串池之前,根据是否包含大写字符,确定只插入原始字符串或插入原始字符串以及转为小写后的字符串;
所述索引表,用于记录原始字符串以及将原始字符串转为小写后的字符串在字符串池中的内存位置。
3.根据权利要求1所述的字符串编码和查找方法,其特征在于,所述解析电路网表中的字符串,并存入字符串池的步骤,还包括,
电路网表在解析过程中,需要对电路中的各种器件、端口、参数、模型等的名称进行存储;
所述网表中的字符串,包括处于特定上下文环境下的字符串;
如果字符串不包含大写字符,则将原始字符串直接存储到字符串池中,否则,将原始字符串以及转为小写后的字符串都存储到字符串池中。
4.根据权利要求1所述的字符串编码和查找方法,其特征在于,编码信息包括:
采用一级索引或二级索引;
字符串所处上下文是否大小写敏感;
字符串中是否包含大写字符;
字符串的索引值。
5.根据权利要求4所述的字符串编码和查找方法,其特征在于,
所述字符串的索引值,包含敏感索引值和非敏感索引值,所述敏感索引值表示原始字符串的索引值,所述非敏感索引值表示转为小写后的字符串的索引值;
对于不包含大写字符的字符串,其编码中敏感索引值和非敏感索引值是一样的;
对于包含大写字符的字符串,其编码敏感索引值和非敏感索引值是不一样的。
6.根据权利要求1所述的字符串编码和查找方法,其特征在于,所述语法规定的大小写敏感规则,包括:
如果定义时大小写敏感,使用时也大小写敏感,则比较各自的原始字符串;否则,进行模糊匹配,比较各自转为小写后的字符串。
7.一种电子设备,其特征在于,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行权利要求1至6任一项所述的字符串编码和查找方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序运行时执行权利要求1至6任一项所述的字符串编码和查找方法的步骤。
CN202110824063.9A 2021-07-21 2021-07-21 一种字符串编码和查找方法 Active CN113419742B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110824063.9A CN113419742B (zh) 2021-07-21 2021-07-21 一种字符串编码和查找方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110824063.9A CN113419742B (zh) 2021-07-21 2021-07-21 一种字符串编码和查找方法

Publications (2)

Publication Number Publication Date
CN113419742A CN113419742A (zh) 2021-09-21
CN113419742B true CN113419742B (zh) 2022-05-24

Family

ID=77721530

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110824063.9A Active CN113419742B (zh) 2021-07-21 2021-07-21 一种字符串编码和查找方法

Country Status (1)

Country Link
CN (1) CN113419742B (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3801380A1 (de) * 1987-01-20 1988-07-28 Nec Corp Zeichenfolge-erkennungsvorrichtung mit einem speicher, dessen speicherbereiche selektiv zugreifbar sind
CN106156103B (zh) * 2015-04-02 2019-11-26 广州爱九游信息技术有限公司 一种搜索处理方法及装置
CN109597794A (zh) * 2018-12-05 2019-04-09 郑州云海信息技术有限公司 一种文件管理方法、系统及电子设备和存储介质
CN110046331A (zh) * 2019-03-20 2019-07-23 北京品友互动信息技术股份公司 数据编码方法及装置、存储介质、电子装置

Also Published As

Publication number Publication date
CN113419742A (zh) 2021-09-21

Similar Documents

Publication Publication Date Title
US9336201B2 (en) Regular expression word verification
US8239188B2 (en) Example based translation apparatus, translation method, and translation program
US6470347B1 (en) Method, system, program, and data structure for a dense array storing character strings
US7031910B2 (en) Method and system for encoding and accessing linguistic frequency data
Bille et al. Random access to grammar-compressed strings
CN111177184A (zh) 基于自然语言的结构化查询语言转换方法、及其相关设备
CN113158653B (zh) 预训练语言模型的训练方法、应用方法、装置及设备
CN113901280B (zh) 一种集成电路展平式设计的字符串存储与查询系统及方法
WO2021068683A1 (zh) 正则表达式生成方法、装置、服务器及计算机可读存储介质
JP2000231563A (ja) 文書検索方法及び文書検索システム及び文書検索プログラムを記録したコンピュータ読み取り可能な記録媒体
WO2004109492A1 (fr) Procede et appareil de traitement et de representation d&#39;objets
CN100429648C (zh) 一种文本自动分块的方法、分块器和文本到语言合成系统
CN108563629B (zh) 一种日志解析规则自动生成方法和装置
CN109858025B (zh) 一种地址标准化语料的分词方法及系统
CN105786963A (zh) 一种语料库的检索方法及系统
CN114860942A (zh) 文本意图分类方法、装置、设备及存储介质
CN107679187A (zh) 一种中文地址树的构建方法及装置
CN100361128C (zh) 一种用于文本或网络内容分析的多关键词匹配方法
CN113419742B (zh) 一种字符串编码和查找方法
CN101382931A (zh) 一种用于电子、信息及通信系统的交换内码及其应用
CN112417812A (zh) 地址标准化方法、系统及电子设备
CN108595584B (zh) 一种基于数字标记的汉字输出方法和系统
JP4088171B2 (ja) テキスト解析装置、方法、プログラム及びそのプログラムを記録した記録媒体
CN113515907A (zh) Vvp文件的预分析方法、计算机可读存储介质
CN113435218A (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
GR01 Patent grant
GR01 Patent grant