亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于C++語言的TTCN—3測試平臺中字符模式匹配實現(xiàn)方法

        2015-04-15 06:24:47鄭冰
        軟件導(dǎo)刊 2015年3期
        關(guān)鍵詞:模式匹配字符串字符

        摘要:TTCN-3是一個由ETSI維護的全球適用的標準測試語言。在TTCN-3測試平臺設(shè)計與實現(xiàn)中,字符模式匹配機制是一個重要組成部分。提出一種采用面向?qū)ο蟮某绦蛟O(shè)計語言C++來實現(xiàn)TTCN-3測試平臺中字符模式匹配方法,并給出了實例驗證。

        關(guān)鍵詞:C++;TTCN-3;正則表達式;字符模式匹配

        中圖分類號:TP306

        文獻標識碼:A 文章編號:1672-7800(2015)003-0030-02

        0 引言

        TTCN-3(Testing and Test Control Notation Version 3)是目前流行的一種測試語言。在TTCN-3測試平臺設(shè)計與實現(xiàn)過程中,模板匹配機制是需要實現(xiàn)的一個重要部分,包括指定值匹配、缺省值匹配、值列表匹配、補值列表匹配、任意值匹配、任意值或空匹配、值范圍匹配、超集匹配、子集匹配、任意元素匹配、任意元素或空匹配、排列匹配、字符模式匹配共計13種匹配機制[1],其中一個重要匹配機制為字符模式匹配,它可以用于定義一個接收模板需求的字符串格式并允許一些元字符的使用,例如,在一個字符模式中,“?”和“*”分別意味著匹配任一字符和匹配任意數(shù)目的任一字符。字符模式匹配機制與正則表達式有許多相似之處,本文采用面向?qū)ο蟮某绦蛟O(shè)計語言C++中的“準”標準庫boost庫中的正則表達式庫regex來實現(xiàn)TTCN-3模板的字符模式匹配機制。boost庫是一個開源并且完全免費的C++程序庫,而boost::regex是目前C++語言對于正則表達式支持較好的程序庫。

        1 問題分析

        TTCN-3中可以定義的模板包括用于發(fā)送的模板和用于接收的模板,而字符模式匹配機制可以用于在接收模板中定義一個需要接收字符串的格式,關(guān)鍵字是“pattern”。需要注意的是,字符模式匹配機制只能用于匹配TTCN-3中的charstring和univeral charstring數(shù)據(jù)值[1-2]。舉例如下:

        template charstring MyTemplate :=pattern “a*bc”

        該模板可以匹配任意以字母“a”開頭,接著可以是任意數(shù)目(可以是0個)任一字符,之后是以字母“bc”結(jié)尾的字符串。其中“*”稱為字符模式的元字符,TTCN-3字符模式中的元字符指那些在字符模式中具有特殊意義的專用字符。元字符本身是一個個單一字符,但是不同或者相同的元字符組合起來可以構(gòu)成大的元字符。

        正則表達式(Regular Expression通??s寫成“regex”)指一個用來描述或者匹配一系列符合某個語法規(guī)則的字符串的單個字符串,因而具有比單個或多個字符串更強大的描述能力。通俗地講就是用一個“字符串”來描述一個特征,然后去驗證另一個“字符串”是否符合該特征[3-4]。正則表達式對于解決相當(dāng)數(shù)量的模式匹配問題至關(guān)重要,許多程序設(shè)計語言都支持利用正則表達式進行字符串操作。正則表達式引擎則是一種可以處理正則表達式的軟件,引擎通常是更大的應(yīng)用程序的一部分。C++程序設(shè)計語言中支持正則表達式的準標準庫boost::regex,頭文件是,boost::regex支持的默認正則表達式語法是perl語法。

        從以上分析可以看到,實際上,TTCN-3中的字符模式也即是TTCN-3所支持的正則表達式,但是由于TTCN-3字符模式的語法規(guī)則和C++所支持的perl語法正則表達式有所不同,兩者并不兼容,因而在TTCN-3測試平臺實現(xiàn)中,需要將符合TTCN-3語法規(guī)則的字符模式翻譯成符合perl語法的面向?qū)ο蟪绦蛟O(shè)計語言C++所支持的正則表達式。以charstring類型為例,對TTCN-3測試平臺開發(fā)過程中定義與實現(xiàn)字符模式匹配的過程加以說明:首先定義charstring類型的模板,實例化為對應(yīng)的數(shù)據(jù)值,設(shè)定相應(yīng)的字符模式匹配標識,為相應(yīng)數(shù)據(jù)值模板對象賦值(無論是否帶有具有特殊意義的元字符均視為普通字符串類型),最終返回帶有字符模板匹配機制的charstring數(shù)據(jù)值模板對象實例;在接收操作中,需要將系統(tǒng)接收到的charstring數(shù)據(jù)值與帶有字符模式匹配機制的模板進行匹配,實現(xiàn)匹配操作時,首先應(yīng)該將帶有字符模式匹配機制的模式串轉(zhuǎn)換為符合Perl語法的正則表達式,之后才可以使用匹配算法regex_match進行匹配操作,并返回匹配結(jié)果(true 或是false),系統(tǒng)根據(jù)匹配結(jié)果進行下一步測試操作,如圖1所示。以上過程實際上涉及了TTCN-3測試平臺中TE實體內(nèi)部的3個交互實體:ETS、TTCN-3運行時系統(tǒng)(T3RTS)和一個可選的內(nèi)部編解碼系統(tǒng)(EDS)實體。為了突出本文內(nèi)容,這里隱去這一部分,TTCN-3數(shù)據(jù)類型、數(shù)據(jù)值及模板表示見參考文獻[5],不再贅述。

        2 實現(xiàn)方法

        從以上分析可以看到,匹配操作中的關(guān)鍵一步就是實現(xiàn)模板字符串從TTCN-3字符模式匹配機制到符合Perl語法的正則表達式的轉(zhuǎn)換,兩者區(qū)別主要在于某些帶有特殊意義的元字符有所不同。TTCN-3字符模式匹配機制與Perl語法的正則表達式中不同元字符的對比如表1所示。

        從表1可以看出,兩者元字符的含義確實不同。本文采用的轉(zhuǎn)換思想如下:①構(gòu)造含有需替換TTCN-3字符模式元字符的正則表達式reg;②使用boost::regex_replace方法進行字符串的查找與替換,以及格式轉(zhuǎn)換,如果字符模式中含有“?”、“*”、“*#n”、“#(n,m)”,則替換為符合Perl語法的正則表達式的字符,否則不作任何修改;③使用boost::regex_match方法進行正則表達式的匹配操作,返回值為True或是False。

        3 翻譯示例

        對上述例子進行說明如下:

        TTCN-3代碼:template charstring MyTemplate :=pattern “a*bc”;

        對應(yīng)接收操作時模板匹配的C++翻譯代碼:

        int i = String.find('*');

        String.replace(i, 1, “.*”);

        boost::regex reg(String);

        bool b=boost::regex_match(data,reg);//data是測試系統(tǒng)接收到的數(shù)據(jù)值

        4 結(jié)語

        本文提出了一種采用面向?qū)ο蟮某绦蛟O(shè)計語言C++實現(xiàn)TTCN-3中模板的字符模式匹配方法。通過分析字符模式匹配機制與Perl語法的正則表達式的不同,找到兩者轉(zhuǎn)換的方法,并給出了實例說明。研究中需注意正則表達式的貪婪性,本文使用正則表達式的默認貪婪模式。

        參考文獻:

        [1] ETSI.Methods for testing and specification(MTS);The testing and test control notation version3;part5:TTCN-3 runtime interface (TRI) [S]. FRANCE, ETSI ES 201 873-1 V3.2.1,2007.

        [2] ETSI.Methods for testing and specification(MTS);the testing and test control notation version3;part1:TTCN-3 core language[S]. FRANCE,ETSI ES 201 873-1 V3.2.1,2007.

        [3] 王艷,李冬梅.基于正則表達式的協(xié)議識別方案[J].軟件導(dǎo)刊,2009(2):47-49.

        [4] 賀煒.網(wǎng)包正則表達式匹配算法研究[D].鄭州:解放軍信息工程大學(xué),2013.

        [5] 鄭冰.基于TTCN-3測試平臺的模板匹配問題的研究與實現(xiàn)[D].呼和浩特:內(nèi)蒙古大學(xué),2009.

        [6] 周冬初,鞠鳳娟,郭東琿.基于Struts2框架校驗數(shù)據(jù)及整合正則表達式的實現(xiàn)方法[J].計算機與現(xiàn)代化,2011(1):85-87.

        (責(zé)任編輯:孫 娟)

        猜你喜歡
        模式匹配字符串字符
        尋找更強的字符映射管理器
        基于模式匹配的計算機網(wǎng)絡(luò)入侵防御系統(tǒng)
        電子制作(2019年13期)2020-01-14 03:15:32
        字符代表幾
        一種USB接口字符液晶控制器設(shè)計
        電子制作(2019年19期)2019-11-23 08:41:50
        具有間隙約束的模式匹配的研究進展
        移動信息(2018年1期)2018-12-28 18:22:52
        消失的殖民村莊和神秘字符
        OIP-IOS運作與定價模式匹配的因素、機理、機制問題
        基于散列函數(shù)的模式匹配算法
        一種新的基于對稱性的字符串相似性處理算法
        依據(jù)字符串匹配的中文分詞模型研究
        日本九州不卡久久精品一区| 亚洲女同一区二区| 国产精品一区二区久久不卡| 精品久久久噜噜噜久久久| 丰满多毛少妇做爰视频| av手机天堂| 亚洲视频不卡免费在线| 一区二区三区四区草逼福利视频| 久久久久高潮综合影院| 国产午夜精品理论片| 巨爆乳中文字幕爆乳区| 久久熟女精品—区二区蜜臀| 小池里奈第一部av在线观看| 插上翅膀插上科学的翅膀飞| 少女韩国电视剧在线观看完整| 中国农村熟妇性视频| 国产一区二区三区小说| 久久精品国产亚洲av蜜臀久久 | 不卡一本av天堂专区| 精品免费久久久久久久| 亚洲乱码av中文一区二区| 亚洲av日韩av一卡二卡| 亚洲中文字幕一区av| 国产av夜夜欢一区二区三区| 欧美大屁股xxxxhd黑色| 亚洲91av| 一区二区三区免费视频网站| 在线国产丝袜自拍观看| 日本中文一区二区在线观看| 麻麻张开腿让我爽了一夜| 五月天综合在线| av网址大全在线播放| 精品激情成人影院在线播放| 国产精品久久久久影院嫩草| 99成人无码精品视频| 国产精品女同久久久久久| 性色国产成人久久久精品二区三区 | 亚洲综合色婷婷七月丁香| 少妇一区二区三区久久| 色噜噜狠狠一区二区三区果冻 | 婷婷激情六月|