一種將文本解析成鍵值對(duì)的方法和裝置制造方法
【專利摘要】本申請(qǐng)?zhí)峁┝艘环N將文本解析成鍵值對(duì)的方法和裝置,其中的方法具體包括:預(yù)置文本格式的文本解析模板;所述文本解析模板用于描述待處理文本的格式和目標(biāo)鍵值對(duì)的格式;對(duì)所述文本格式的文本解析模板進(jìn)行編譯,得到計(jì)算機(jī)程序可識(shí)別的編譯結(jié)果,所述編譯結(jié)果包括:與待處理文本的格式相應(yīng)的源變量和分隔符,以及與目標(biāo)鍵值對(duì)的格式相應(yīng)的目標(biāo)變量;依據(jù)所述源變量和分隔符在待處理文本中進(jìn)行匹配,得到所述源變量的值;保留與所述目標(biāo)變量相同的源變量及相應(yīng)的值,作為與所述待處理文本相應(yīng)的鍵值對(duì)。本申請(qǐng)能夠提高將文本解析成鍵值對(duì)的效率。
【專利說(shuō)明】一種將文本解析成鍵值對(duì)的方法和裝置
【技術(shù)領(lǐng)域】
[0001]本申請(qǐng)涉及數(shù)據(jù)處理【技術(shù)領(lǐng)域】,特別是涉及一種將文本解析成鍵值對(duì)的方法和裝置。
【背景技術(shù)】
[0002]鍵值(Key-value)對(duì)是計(jì)算機(jī)程序的一種數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),其通過(guò)一個(gè)主鍵(key)可以快速唯一定位到一個(gè)鍵值(value),在需要快速查找和一對(duì)一保存數(shù)據(jù)等場(chǎng)景中得到了廣泛應(yīng)用。
[0003]在實(shí)際應(yīng)用中,經(jīng)常存在這樣的需求:將一段文本中有價(jià)值的信息提取出來(lái),并且通過(guò)鍵值對(duì)的形式進(jìn)行存儲(chǔ)。例如,待處理文本為“icbcOOl,123456”,其中隱藏了渠道編號(hào)(api)和流水號(hào)(no)這樣的信息,需要將其中的內(nèi)容提取出來(lái),最終形成如下鍵值對(duì){ap1:1cbcOOl, no:123456}。
[0004]對(duì)待處理文本的格式進(jìn)行分析,可以得知文本是通過(guò)一個(gè)既定的符號(hào)分隔的字符串,文本中包含不規(guī)則的分隔符。故參考已有的字符串操作方法,將文本解析成鍵值對(duì)需要使用獲取子串的方式,其中獲取子串需要提前知道提取的子串在文本中的起始位置和終止位置;另外,還需要獲知“,”等分隔符的位置;在分隔符處截取兩個(gè)子串,并賦值給相應(yīng)的變量,即能得到鍵值對(duì)。
[0005]依據(jù)上述解析思想,現(xiàn)有將文本解析成鍵值對(duì)的方法主要采用一個(gè)字符一個(gè)字符處理的方式,具體過(guò)程如下:
[0006]首先,針對(duì)待處理文本,從第一個(gè)字符開始向后查找,判斷有沒有一個(gè)字符是“,”,找到這個(gè)符號(hào)后獲取該符號(hào)所在的位置;
[0007]其次,依據(jù)獲取的“,”的位置,獲知“,”前面的子串在整個(gè)字符串中的起始位置和終止位置,以及,后面的子串在整個(gè)字符串中的起始位置和終止位置;
[0008]再次,通過(guò)程序設(shè)計(jì)語(yǔ)言的提取子串的功能分別提取出這兩個(gè)子串;
[0009]最后,將兩個(gè)子串分別賦值給api和no。
[0010]綜上,現(xiàn)有將文本解析成鍵值對(duì)的方法需要對(duì)文本進(jìn)行一個(gè)字符一個(gè)字符的查找以確定文本格式,并且在查找后,需要根據(jù)復(fù)雜的文本格式確定變量格式,然后在確定變量格式后,需要將這些變量對(duì)應(yīng)的字符串提取出來(lái),然后將其賦值,形成鍵值對(duì),也即現(xiàn)有將文本解析成鍵值對(duì)的方法需要很多次的全量遍歷。然而,在文本格式非常復(fù)雜(例如具有多種分隔符),而且文本長(zhǎng)度很長(zhǎng)(例如子串長(zhǎng)度很長(zhǎng))的情況下,多次全量遍歷會(huì)導(dǎo)致解析效率的大幅下降。
[0011]總之,需要本領(lǐng)域技術(shù)人員迫切解決的一個(gè)技術(shù)問(wèn)題就是:如何能夠提高將文本解析成鍵值對(duì)的效率。
【發(fā)明內(nèi)容】
[0012]本申請(qǐng)所要解決的技術(shù)問(wèn)題是提供一種將文本解析成鍵值對(duì)的方法和裝置,能夠提高將文本解析成鍵值對(duì)的效率。
[0013]為了解決上述問(wèn)題,本申請(qǐng)公開了一種將文本解析成鍵值對(duì)的方法,包括:
[0014]預(yù)置文本格式的文本解析模板;所述文本解析模板用于描述待處理文本的格式和目標(biāo)鍵值對(duì)的格式;
[0015]對(duì)所述文本格式的文本解析模板進(jìn)行編譯,得到計(jì)算機(jī)程序可識(shí)別的編譯結(jié)果,所述編譯結(jié)果包括:與待處理文本的格式相應(yīng)的源變量和分隔符,以及與目標(biāo)鍵值對(duì)的格式相應(yīng)的目標(biāo)變量;
[0016]依據(jù)所述源變量和分隔符在待處理文本中進(jìn)行匹配,得到所述源變量的值;
[0017]保留與所述目標(biāo)變量相同的源變量及相應(yīng)的值,作為與所述待處理文本相應(yīng)的鍵值對(duì)。
[0018]優(yōu)選的,所述文本解析模板包括若干行文本;所述對(duì)所述文本格式的文本解析模板進(jìn)行編譯,得到計(jì)算機(jī)程序可識(shí)別的編譯結(jié)果的步驟,包括:
[0019]讀取所述文本解析模板的行文本的內(nèi)容;
[0020]確定所述行文本的內(nèi)容符合的既定語(yǔ)法結(jié)構(gòu);所述既定語(yǔ)法結(jié)構(gòu)包括定義語(yǔ)法結(jié)構(gòu)和保留語(yǔ)法結(jié)構(gòu);
[0021]從符合所述定義語(yǔ)法結(jié)構(gòu)的所述行文本的內(nèi)容中識(shí)別出與待處理文本的格式相應(yīng)的源變量和分隔符;
[0022]從符合所述保留語(yǔ)法結(jié)構(gòu)的所述行文本的內(nèi)容中識(shí)別出與目標(biāo)鍵值對(duì)的格式相應(yīng)的目標(biāo)變量。
[0023]優(yōu)選的,所述依據(jù)所述源變量和分隔符在待處理文本中進(jìn)行匹配,得到所述源變量的值的步驟,包括:
[0024]從待處理文本的第一個(gè)字符開始,按照所述源變量和分隔符的順序在待處理文本中進(jìn)行匹配,得到的匹配結(jié)果中,第一個(gè)字符到第一個(gè)分隔符之間的文本為第一個(gè)源變量的值,兩個(gè)分隔符之間的文本為對(duì)應(yīng)順序的源變量的值。
[0025]優(yōu)選的,所述編譯結(jié)果的數(shù)據(jù)結(jié)構(gòu)為類對(duì)象。
[0026]優(yōu)選的,所述文本解析模板還用于描述解析的數(shù)據(jù)校驗(yàn)規(guī)則;所述編譯結(jié)果還包括與所述數(shù)據(jù)校驗(yàn)規(guī)則相應(yīng)的源變量及相應(yīng)的校驗(yàn)函數(shù);
[0027]所述方法還包括:
[0028]利用校驗(yàn)函數(shù)對(duì)所述源變量的值進(jìn)行校驗(yàn),若校驗(yàn)通過(guò),則執(zhí)行所述保留與所述目標(biāo)變量相同的源變量及相應(yīng)的值,作為與所述待處理文本相應(yīng)的鍵值對(duì)的步驟,若校驗(yàn)不通過(guò),則丟棄所述待處理文本。
[0029]優(yōu)選的,所述文本解析模板還用于描述解析的二次數(shù)據(jù)處理需求;所述編譯結(jié)果還包括與所述二次數(shù)據(jù)處理需求相應(yīng)的二次數(shù)據(jù)處理源變量及相應(yīng)的新變量和二次數(shù)據(jù)處理函數(shù),所述二次數(shù)據(jù)處理函數(shù)用于將所述二次數(shù)據(jù)處理源變量中主鍵的值賦值給所述
新變量;
[0030]則所述方法還包括:
[0031]依據(jù)所述與所述二次數(shù)據(jù)處理需求相應(yīng)的二次數(shù)據(jù)處理源變量及相應(yīng)的新變量和二次數(shù)據(jù)處理函數(shù),對(duì)所述源變量及相應(yīng)的值進(jìn)行二次數(shù)據(jù)處理,得到相應(yīng)新變量及相應(yīng)的值;[0032]保留與所述目標(biāo)變量相同的源變量和新變量及相應(yīng)的值,作為與所述待處理文本相應(yīng)的鍵值對(duì)。
[0033]優(yōu)選的,所述文本解析模板包括若干行文本;所述對(duì)所述文本格式的文本解析模板進(jìn)行編譯,得到計(jì)算機(jī)程序可識(shí)別的編譯結(jié)果的步驟,包括:
[0034]讀取所述文本解析模板的行文本的內(nèi)容;
[0035]確定所述行文本的內(nèi)容符合的既定語(yǔ)法結(jié)構(gòu);所述既定語(yǔ)法結(jié)構(gòu)包括定義語(yǔ)法結(jié)構(gòu)、保留語(yǔ)法結(jié)構(gòu)和校驗(yàn)語(yǔ)法結(jié)構(gòu);
[0036]從符合所述定義語(yǔ)法結(jié)構(gòu)的所述行文本的內(nèi)容中識(shí)別出與待處理文本的格式相應(yīng)的源變量和分隔符;
[0037]從符合所述保留語(yǔ)法結(jié)構(gòu)的所述行文本的內(nèi)容中識(shí)別出與目標(biāo)鍵值對(duì)的格式相應(yīng)的目標(biāo)變量;
[0038]從符合所述校驗(yàn)語(yǔ)法結(jié)構(gòu)的所述行文本的內(nèi)容中識(shí)別出與所述數(shù)據(jù)校驗(yàn)規(guī)則相應(yīng)的源變量及相應(yīng)的校驗(yàn)函數(shù)。
[0039]優(yōu)選的,所述文本解析模板包括若干行文本;所述對(duì)所述文本格式的文本解析模板進(jìn)行編譯,得到計(jì)算機(jī)程序可識(shí)別的編譯結(jié)果的步驟,包括:
[0040]讀取所述文本解析模板的行文本的內(nèi)容;
[0041]確定所述行文本的內(nèi)容符合的既定語(yǔ)法結(jié)構(gòu);所述既定語(yǔ)法結(jié)構(gòu)包括定義語(yǔ)法結(jié)構(gòu)、保留語(yǔ)法結(jié)構(gòu)和二次數(shù)據(jù)處理語(yǔ)法結(jié)構(gòu);
[0042]從符合所述定義語(yǔ)法結(jié)構(gòu)的所述行文本的內(nèi)容中識(shí)別出與待處理文本的格式相應(yīng)的源變量和分隔符;
[0043]從符合所述保留語(yǔ)法結(jié)構(gòu)的所述行文本的內(nèi)容中識(shí)別出與目標(biāo)鍵值對(duì)的格式相應(yīng)的目標(biāo)變量;
[0044]從符合所述二次數(shù)據(jù)處理語(yǔ)法結(jié)構(gòu)的所述行文本的內(nèi)容中識(shí)別出與所述二次數(shù)據(jù)處理需求相應(yīng)的二次數(shù)據(jù)處理源變量及相應(yīng)的新變量和二次數(shù)據(jù)處理函數(shù)。
[0045]優(yōu)選的,所述校驗(yàn)函數(shù)對(duì)應(yīng)正則表達(dá)式。
[0046]另一方面,本申請(qǐng)還公開了一種將文本解析成鍵值對(duì)的裝置,包括:
[0047]模板預(yù)置模塊,用于預(yù)置文本格式的文本解析模板;所述文本解析模板用于描述待處理文本的格式和目標(biāo)鍵值對(duì)的格式;
[0048]模板編譯模塊,用于對(duì)所述文本格式的文本解析模板進(jìn)行編譯,得到計(jì)算機(jī)程序可識(shí)別的編譯結(jié)果,所述編譯結(jié)果包括:與待處理文本的格式相應(yīng)的源變量和分隔符,以及與目標(biāo)鍵值對(duì)的格式相應(yīng)的目標(biāo)變量;
[0049]文本匹配模塊,用于依據(jù)所述源變量和分隔符在待處理文本中進(jìn)行匹配,得到所述源變量的值 '及
[0050]變量保留模塊,用于保留與所述目標(biāo)變量相同的源變量及相應(yīng)的值,作為與所述待處理文本相應(yīng)的鍵值對(duì)。
[0051]優(yōu)選的,所述文本解析模板包括若干行文本;所述模板編譯模塊包括:
[0052]讀取子模塊,用于讀取所述文本解析模板的行文本的內(nèi)容;
[0053]語(yǔ)法結(jié)構(gòu)確定子模塊,用于確定所述行文本的內(nèi)容符合的既定語(yǔ)法結(jié)構(gòu);所述既定語(yǔ)法結(jié)構(gòu)包括定義語(yǔ)法結(jié)構(gòu)和保留語(yǔ)法結(jié)構(gòu);[0054]第一識(shí)別子模塊,用于從符合所述定義語(yǔ)法結(jié)構(gòu)的所述行文本的內(nèi)容中識(shí)別出與待處理文本的格式相應(yīng)的源變量和分隔符;
[0055]第二識(shí)別子模塊,用于從符合所述保留語(yǔ)法結(jié)構(gòu)的所述行文本的內(nèi)容中識(shí)別出與目標(biāo)鍵值對(duì)的格式相應(yīng)的目標(biāo)變量。
[0056]優(yōu)選的,所述文本匹配模塊,具體用于從待處理文本的第一個(gè)字符開始,按照所述源變量和分隔符的順序在待處理文本中進(jìn)行匹配,得到的匹配結(jié)果中,第一個(gè)字符到第一個(gè)分隔符之間的文本為第一個(gè)源變量的值,兩個(gè)分隔符之間的文本為對(duì)應(yīng)順序的源變量的值。
[0057]優(yōu)選的,所述編譯結(jié)果的數(shù)據(jù)結(jié)構(gòu)為類對(duì)象。
[0058]優(yōu)選的,所述文本解析模板還用于描述解析的數(shù)據(jù)校驗(yàn)規(guī)則;所述編譯結(jié)果還包括與所述數(shù)據(jù)校驗(yàn)規(guī)則相應(yīng)的源變量及相應(yīng)的校驗(yàn)函數(shù);
[0059]所述裝置還包括:
[0060]校驗(yàn)?zāi)K,用于利用校驗(yàn)函數(shù)對(duì)所述源變量的值進(jìn)行校驗(yàn),若校驗(yàn)通過(guò),則執(zhí)行所述保留與所述目標(biāo)變量相同的源變量及相應(yīng)的值,作為與所述待處理文本相應(yīng)的鍵值對(duì)的步驟,若校驗(yàn)不通過(guò),則丟棄所述待處理文本。
[0061]優(yōu)選的,所述文本解析模板還用于描述解析的二次數(shù)據(jù)處理需求;所述編譯結(jié)果還包括與所述二次數(shù)據(jù)處理需求相應(yīng)的二次數(shù)據(jù)處理源變量及相應(yīng)的新變量和二次數(shù)據(jù)處理函數(shù),所述二次數(shù)據(jù)處理函數(shù)用于將所述二次數(shù)據(jù)處理源變量中主鍵的值賦值給所述
新變量;
[0062]則所述裝置還包括:
[0063]二次處理模塊,用于依據(jù)所述與所述二次數(shù)據(jù)處理需求相應(yīng)的二次數(shù)據(jù)處理源變量及相應(yīng)的新變量和二次數(shù)據(jù)處理函數(shù),對(duì)所述源變量及相應(yīng)的值進(jìn)行二次數(shù)據(jù)處理,得到相應(yīng)新變量及相應(yīng)的值;
[0064]第二變量保留模塊,用于保留與所述目標(biāo)變量相同的源變量和新變量及相應(yīng)的值,作為與所述待處理文本相應(yīng)的鍵值對(duì)。
[0065]與現(xiàn)有技術(shù)相比,本申請(qǐng)具有以下優(yōu)點(diǎn):
[0066]本申請(qǐng)采用預(yù)置的文本解析模板與待處理文本匹配的方式,從待處理文本中提取有價(jià)值的信息以實(shí)現(xiàn)文本解析;相對(duì)于現(xiàn)有技術(shù)中多次全量遍歷,本申請(qǐng)中文本解析模板與待處理文本的匹配只需一次全量遍歷,故能夠有效提高解析效率,尤其在文本格式非常復(fù)雜或文本長(zhǎng)度很長(zhǎng)的情況下,本申請(qǐng)?zhí)岣呓馕鲂实膬?yōu)勢(shì)更為顯著。
[0067]另外,如果在解析過(guò)程中存在文本格式變更、數(shù)據(jù)二次數(shù)據(jù)處理、數(shù)據(jù)校驗(yàn)等不斷變更的解析需求,現(xiàn)有技術(shù)中需要頻繁、大量地修改代碼,也即現(xiàn)有技術(shù)具有靈活性差的缺點(diǎn);而本申請(qǐng)通過(guò)預(yù)先配置的方式將文本解析模板和計(jì)算機(jī)程序代碼(解析過(guò)程中文本解析模板與待處理文本的匹配等操作對(duì)應(yīng)的計(jì)算機(jī)程序代碼)分開,在存在不斷變更的解析需求時(shí),計(jì)算機(jī)程序代碼無(wú)需變動(dòng),只需更改文本解析模板即可,故相對(duì)于現(xiàn)有技術(shù),本申請(qǐng)能夠大大提高將文本解析成鍵值對(duì)的靈活性。
【專利附圖】
【附圖說(shuō)明】
[0068]圖1是本申請(qǐng)一種將文本解析成鍵值對(duì)的方法實(shí)施例1的流程圖;[0069]圖2是本申請(qǐng)一種將文本解析成鍵值對(duì)的方法實(shí)施例2的流程圖;
[0070]圖3是本申請(qǐng)一種將文本解析成鍵值對(duì)的方法實(shí)施例3的流程圖;
[0071]圖4是本申請(qǐng)一種將文本解析成鍵值對(duì)的裝置實(shí)施例的結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0072]為使本申請(qǐng)的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和【具體實(shí)施方式】對(duì)本申請(qǐng)作進(jìn)一步詳細(xì)的說(shuō)明。
[0073]本申請(qǐng)實(shí)施例采用文本解析模板描述待處理文本的格式和目標(biāo)鍵值對(duì)的格式,并采用文本解析模板與待處理文本匹配的方式從中提取有價(jià)值的信息以實(shí)現(xiàn)文本解析。相對(duì)于現(xiàn)有技術(shù)中多次全量遍歷,本申請(qǐng)中文本解析模板與待處理文本的匹配只需一次全量遍歷,故能夠有效提高解析效率,尤其在文本格式非常復(fù)雜或文本長(zhǎng)度很長(zhǎng)的情況下,本申請(qǐng)?zhí)岣呓馕鲂实膬?yōu)勢(shì)更為顯著。
[0074]參照?qǐng)D1,示出了本申請(qǐng)一種將文本解析成鍵值對(duì)的方法實(shí)施例1的流程圖,具體可以包括:
[0075]步驟101、預(yù)置文本格式的文本解析模板;所述文本解析模板用于描述待處理文本的格式和目標(biāo)鍵值對(duì)的格式;
[0076]本申請(qǐng)實(shí)施例中,文本解析模板本身也是一種自定義的程序設(shè)計(jì)語(yǔ)言,這種語(yǔ)言是用來(lái)描述待處理文本的格式和目標(biāo)鍵值對(duì)的格式。
[0077]在本申請(qǐng)的一種應(yīng)用示例中,所述文本解析模板具體可以包括定義語(yǔ)句和保留輸出語(yǔ)句兩部分,其中,定義語(yǔ) 句可用于描述待處理文本的格式,保留輸出語(yǔ)句可用于描述目標(biāo)鍵值對(duì)的格式。
[0078]在實(shí)際應(yīng)用中,可由本【技術(shù)領(lǐng)域】的程序員根據(jù)待處理文本的格式情況及目標(biāo)鍵值對(duì)的格式情況,預(yù)置所述文本解析模板。
[0079]參照表1,示出了本申請(qǐng)一種文本解析模板中定義語(yǔ)句和保留輸出語(yǔ)句的示例。
[0080]表I
[0081]
文本解析模板
示倒說(shuō)明組成部分__:_
#define(@api@,@action@,@state@ 格式為#def1ne()5 ()內(nèi)用來(lái)描述待 | 定義語(yǔ)句...___)丨處理文本的格式,文本通過(guò)κ廣分I
[0082]
【權(quán)利要求】
1.一種將文本解析成鍵值對(duì)的方法,其特征在于,包括: 預(yù)置文本格式的文本解析模板;所述文本解析模板用于描述待處理文本的格式和目標(biāo)鍵值對(duì)的格式; 對(duì)所述文本格式的文本解析模板進(jìn)行編譯,得到計(jì)算機(jī)程序可識(shí)別的編譯結(jié)果,所述編譯結(jié)果包括:與待處理文本的格式相應(yīng)的源變量和分隔符,以及與目標(biāo)鍵值對(duì)的格式相應(yīng)的目標(biāo)變量; 依據(jù)所述源變量和分隔符在待處理文本中進(jìn)行匹配,得到所述源變量的值; 保留與所述目標(biāo)變量相同的源變量及相應(yīng)的值,作為與所述待處理文本相應(yīng)的鍵值對(duì)。
2.如權(quán)利要求1所述的方法,其特征在于,所述文本解析模板包括若干行文本;所述對(duì)所述文本格式的文本解析模板進(jìn)行編譯,得到計(jì)算機(jī)程序可識(shí)別的編譯結(jié)果的步驟,包括: 讀取所述文本解析模板的行文本的內(nèi)容; 確定所述行文本的內(nèi)容符合的既定語(yǔ)法結(jié)構(gòu);所述既定語(yǔ)法結(jié)構(gòu)包括定義語(yǔ)法結(jié)構(gòu)和保留語(yǔ)法結(jié)構(gòu); 從符合所述定義語(yǔ)法結(jié)構(gòu)的所述行文本的內(nèi)容中識(shí)別出與待處理文本的格式相應(yīng)的源變量和分隔符; 從符合所述保留語(yǔ)法結(jié)構(gòu)的所述行文本的內(nèi)容中識(shí)別出與目標(biāo)鍵值對(duì)的格式相應(yīng)的目標(biāo)變量 。
3.如權(quán)利要求1所述的方法,其特征在于,所述依據(jù)所述源變量和分隔符在待處理文本中進(jìn)行匹配,得到所述源變量的值的步驟,包括: 從待處理文本的第一個(gè)字符開始,按照所述源變量和分隔符的順序在待處理文本中進(jìn)行匹配,得到的匹配結(jié)果中,第一個(gè)字符到第一個(gè)分隔符之間的文本為第一個(gè)源變量的值,兩個(gè)分隔符之間的文本為對(duì)應(yīng)順序的源變量的值。
4.如權(quán)利要求1或2或3所述的方法,其特征在于,所述編譯結(jié)果的數(shù)據(jù)結(jié)構(gòu)為類對(duì)象。
5.如權(quán)利要求1或2或3所述的方法,其特征在于,所述文本解析模板還用于描述解析的數(shù)據(jù)校驗(yàn)規(guī)則;所述編譯結(jié)果還包括與所述數(shù)據(jù)校驗(yàn)規(guī)則相應(yīng)的源變量及相應(yīng)的校驗(yàn)函數(shù); 所述方法還包括: 利用校驗(yàn)函數(shù)對(duì)所述源變量的值進(jìn)行校驗(yàn),若校驗(yàn)通過(guò),則執(zhí)行所述保留與所述目標(biāo)變量相同的源變量及相應(yīng)的值,作為與所述待處理文本相應(yīng)的鍵值對(duì)的步驟,若校驗(yàn)不通過(guò),則丟棄所述待處理文本。
6.如權(quán)利要求1或2或3所述的方法,其特征在于,所述文本解析模板還用于描述解析的二次數(shù)據(jù)處理需求;所述編譯結(jié)果還包括與所述二次數(shù)據(jù)處理需求相應(yīng)的二次數(shù)據(jù)處理源變量及相應(yīng)的新變量和二次數(shù)據(jù)處理函數(shù),所述二次數(shù)據(jù)處理函數(shù)用于將所述二次數(shù)據(jù)處理源變量中主鍵的值賦值給所述新變量; 所述方法還包括: 依據(jù)所述與所述二次數(shù)據(jù)處理需求相應(yīng)的二次數(shù)據(jù)處理源變量及相應(yīng)的新變量和二次數(shù)據(jù)處理函數(shù),對(duì)所述源變量及相應(yīng)的值進(jìn)行二次數(shù)據(jù)處理,得到相應(yīng)新變量及相應(yīng)的值; 保留與所述目標(biāo)變量相同的源變量和新變量及相應(yīng)的值,作為與所述待處理文本相應(yīng)的鍵值對(duì)。
7.如權(quán)利要求5所述的方法,其特征在于,所述文本解析模板包括若干行文本;所述對(duì)所述文本格式的文本解析模板進(jìn)行編譯,得到計(jì)算機(jī)程序可識(shí)別的編譯結(jié)果的步驟,包括: 讀取所述文本解析模板的行文本的內(nèi)容; 確定所述行文本的內(nèi)容符合的既定語(yǔ)法結(jié)構(gòu);所述既定語(yǔ)法結(jié)構(gòu)包括定義語(yǔ)法結(jié)構(gòu)、保留語(yǔ)法結(jié)構(gòu)和校驗(yàn)語(yǔ)法結(jié)構(gòu); 從符合所述定義語(yǔ)法結(jié)構(gòu)的所述行文本的內(nèi)容中識(shí)別出與待處理文本的格式相應(yīng)的源變量和分隔符; 從符合所述保留語(yǔ)法結(jié)構(gòu)的所述行文本的內(nèi)容中識(shí)別出與目標(biāo)鍵值對(duì)的格式相應(yīng)的目標(biāo)變量; 從符合所述校驗(yàn)語(yǔ)法結(jié)構(gòu)的所述行文本的內(nèi)容中識(shí)別出與所述數(shù)據(jù)校驗(yàn)規(guī)則相應(yīng)的源變量及相應(yīng)的校驗(yàn)函數(shù)。
8.如權(quán)利要求6所述的方法,其特征在于,所述文本解析模板包括若干行文本;所述對(duì)所述文本格式的文本解 析模板進(jìn)行編譯,得到計(jì)算機(jī)程序可識(shí)別的編譯結(jié)果的步驟,包括: 讀取所述文本解析模板的行文本的內(nèi)容; 確定所述行文本的內(nèi)容符合的既定語(yǔ)法結(jié)構(gòu);所述既定語(yǔ)法結(jié)構(gòu)包括定義語(yǔ)法結(jié)構(gòu)、保留語(yǔ)法結(jié)構(gòu)和二次數(shù)據(jù)處理語(yǔ)法結(jié)構(gòu); 從符合所述定義語(yǔ)法結(jié)構(gòu)的所述行文本的內(nèi)容中識(shí)別出與待處理文本的格式相應(yīng)的源變量和分隔符; 從符合所述保留語(yǔ)法結(jié)構(gòu)的所述行文本的內(nèi)容中識(shí)別出與目標(biāo)鍵值對(duì)的格式相應(yīng)的目標(biāo)變量; 從符合所述二次數(shù)據(jù)處理語(yǔ)法結(jié)構(gòu)的所述行文本的內(nèi)容中識(shí)別出與所述二次數(shù)據(jù)處理需求相應(yīng)的二次數(shù)據(jù)處理源變量及相應(yīng)的新變量和二次數(shù)據(jù)處理函數(shù)。
9.如權(quán)利要求5所述的方法,其特征在于,所述校驗(yàn)函數(shù)對(duì)應(yīng)正則表達(dá)式。
10.一種將文本解析成鍵值對(duì)的裝置,其特征在于,包括: 模板預(yù)置模塊,用于預(yù)置文本格式的文本解析模板;所述文本解析模板用于描述待處理文本的格式和目標(biāo)鍵值對(duì)的格式; 模板編譯模塊,用于對(duì)所述文本格式的文本解析模板進(jìn)行編譯,得到計(jì)算機(jī)程序可識(shí)別的編譯結(jié)果,所述編譯結(jié)果包括:與待處理文本的格式相應(yīng)的源變量和分隔符,以及與目標(biāo)鍵值對(duì)的格式相應(yīng)的目標(biāo)變量; 文本匹配模塊,用于依據(jù)所述源變量和分隔符在待處理文本中進(jìn)行匹配,得到所述源變量的值;及 變量保留模塊,用于保留與所述目標(biāo)變量相同的源變量及相應(yīng)的值,作為與所述待處理文本相應(yīng)的鍵值對(duì)。
11.如權(quán)利要求10所述的裝置,其特征在于,所述文本解析模板包括若干行文本;所述模板編譯模塊包括: 讀取子模塊,用于讀取所述文本解析模板的行文本的內(nèi)容; 語(yǔ)法結(jié)構(gòu)確定子模塊,用于確定所述行文本的內(nèi)容符合的既定語(yǔ)法結(jié)構(gòu);所述既定語(yǔ)法結(jié)構(gòu)包括定義語(yǔ)法結(jié)構(gòu)和保留語(yǔ)法結(jié)構(gòu); 第一識(shí)別子模塊,用于從符合所述定義語(yǔ)法結(jié)構(gòu)的所述行文本的內(nèi)容中識(shí)別出與待處理文本的格式相應(yīng)的源變量和分隔符; 第二識(shí)別子模塊,用于從符合所述保留語(yǔ)法結(jié)構(gòu)的所述行文本的內(nèi)容中識(shí)別出與目標(biāo)鍵值對(duì)的格式相應(yīng)的目標(biāo)變量。
12.如權(quán)利要求10所述的裝置,其特征在于,所述文本匹配模塊,具體用于從待處理文本的第一個(gè)字符開始,按照所述源變量和分隔符的順序在待處理文本中進(jìn)行匹配,得到的匹配結(jié)果中,第一個(gè)字符到第一個(gè)分隔符之間的文本為第一個(gè)源變量的值,兩個(gè)分隔符之間的文本為對(duì)應(yīng)順序的源變量的值。
13.如權(quán)利要求10或11或12所述的裝置,其特征在于,所述編譯結(jié)果的數(shù)據(jù)結(jié)構(gòu)為類對(duì)象。
14.如權(quán)利要求10或11或12所述的裝置,其特征在于,所述文本解析模板還用于描述解析的數(shù)據(jù)校驗(yàn)規(guī)則;所述編譯結(jié)果還包括與所述數(shù)據(jù)校驗(yàn)規(guī)則相應(yīng)的源變量及相應(yīng)的校驗(yàn)函數(shù); 所述裝置還包括:` 校驗(yàn)?zāi)K,用于利用校驗(yàn)函數(shù)對(duì)所述源變量的值進(jìn)行校驗(yàn),若校驗(yàn)通過(guò),則執(zhí)行所述保留與所述目標(biāo)變量相同的源變量及相應(yīng)的值,作為與所述待處理文本相應(yīng)的鍵值對(duì)的步驟,若校驗(yàn)不通過(guò),則丟棄所述待處理文本。
15.如權(quán)利要求10或11或12所述的裝置,其特征在于,所述文本解析模板還用于描述解析的二次數(shù)據(jù)處理需求;所述編譯結(jié)果還包括與所述二次數(shù)據(jù)處理需求相應(yīng)的二次數(shù)據(jù)處理源變量及相應(yīng)的新變量和二次數(shù)據(jù)處理函數(shù),所述二次數(shù)據(jù)處理函數(shù)用于將所述二次數(shù)據(jù)處理源變量中主鍵的值賦值給所述新變量; 所述裝置還包括: 二次處理模塊,用于依據(jù)所述與所述二次數(shù)據(jù)處理需求相應(yīng)的二次數(shù)據(jù)處理源變量及相應(yīng)的新變量和二次數(shù)據(jù)處理函數(shù),對(duì)所述源變量及相應(yīng)的值進(jìn)行二次數(shù)據(jù)處理,得到相應(yīng)新變量及相應(yīng)的值; 第二變量保留模塊,用于保留與所述目標(biāo)變量相同的源變量和新變量及相應(yīng)的值,作為與所述待處理文本相應(yīng)的鍵值對(duì)。
【文檔編號(hào)】G06F17/22GK103455471SQ201210180496
【公開日】2013年12月18日 申請(qǐng)日期:2012年6月1日 優(yōu)先權(quán)日:2012年6月1日
【發(fā)明者】王尹 申請(qǐng)人:阿里巴巴集團(tuán)控股有限公司