小編給大家分享一下如何實(shí)現(xiàn)SITA報(bào)文解碼匹配的正則表達(dá)式,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
成都創(chuàng)新互聯(lián)公司長(zhǎng)期為1000多家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為西湖企業(yè)提供專業(yè)的網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè),西湖網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
SITA報(bào)文解碼匹配的正則表達(dá)式
一、SITA報(bào)文
ZCZC GRD0226 260108
QU TYNZPCA
.
TYNTZ8X TYNZPCA
.XMNUOMF 260107
PLN 27MAR
1) MF8155 B6483 ILS(8) JJN2340(26MAR) 0120NKG
2) MF8155 B6483 ILS(8) NKG0220 0425TYN
3) MF8156 B6483 ILS(8) TYN0525 0735NKG
4) MF8156 B6483 ILS(8) NKG0900 1050JJN
SI: A/C CHG
=
NNNN
二、查詢fdoagent的日志:
[N][FDOAGENT::HST][03-26 01:07:49]>>>Receive NetObj FDPTEL_AFTNMESSAGE FinID = 202003260010226GRD
//收到冠字GRD/流水0226的報(bào)文
[N][FDOAGENT::HST][03-26 01:07:49]>>>[OnSITA2UpdatePlan]:: header.typestr=PLN!
//識(shí)別為SITA格式PLN報(bào)
[N][FDOAGENT::HST][03-26 01:07:49]>>>RegularExpesstionID = 139, Modify regnum = B6483 : acid = CXA8155, executedate = 20200327, etd = 1020, depad = ZSNJ, arrad = ZBYN
//使用139號(hào)正則表達(dá)式分組捕獲提取需要的內(nèi)容[N][FDOAGENT::HST][03-26 01:07:49]>>>PLN SQL:select * from PLAN_ACTIVE where ETD >= '202003270420' and ETD <= '202003271620' and DEPAD = 'ZSNJ' and ARRAD = 'ZBYN' and CALLSIGN = 'CXA8155' and VALID = 1
[N][FDOAGENT::HST][03-26 01:07:49]>>>PLN SQL:update PLAN_ACTIVE set REGNUM = 'B6483', STD='202003271020', MODIFIER = 'FAG' where ID = '202003271020CXA8155ZSNJZBYN' and VALID = 1
//數(shù)據(jù)庫(kù)查詢得到計(jì)劃的數(shù)據(jù)庫(kù)ID:202003271020CXA8155ZSNJZBYN,update表 PLAN_ACTIVE計(jì)劃。
[N][FDOAGENT::HST][03-26 01:07:49]>>>SndFDOudp:$#NOTICE$#FAG$#PLAN_ACTIVE$#U$#202003271020CXA8155ZSNJZBYN$#
//UDP方式 通知FDO計(jì)劃CXA8155有變化
[N][FDOAGENT::HST][03-26 01:07:50]>>>SQL:insert into TEL_RCV (ID, TELCSN, TELTYPE, SUBTYPE, GRADE,SNDADDR, RCVADDR, ERROR, TEXT, INDATE, ERRORREASON, ACTIVEID, ACID, ADEP, ADES, MESSAGE, SITAINFO) values (......)
//將收到的報(bào)文寫入數(shù)據(jù)庫(kù) TEL_RCV
[N][FDOAGENT::HST][03-26 01:07:50]>>>SndFDOudp:$#NOTICE$#FAG$#TEL_RCV$#I$#202003260010226GRD$#
//UDP方式通知FDO計(jì)劃報(bào)文有變化
三、在regularexp.xml中定位以下內(nèi)容:
第二個(gè)航班號(hào)(此為特殊處理那種兩個(gè)航班號(hào)之間隔著一些說明信息,比如CZ6002 SVO-URC CZ6907這種格式, 一般格式上沒有,一般不填寫)
第一個(gè)航班的起飛機(jī)場(chǎng)對(duì)應(yīng)的第幾個(gè)括號(hào)(整數(shù))
四、YART工具RegexTester.exe
——A tool to write and test regular expressions, generate VB/C# code, and compile assemblies. RegexOptions.Singleline feature added by deerchao.
設(shè)置: Results---->Report;Command-->Split然后執(zhí)行Run
結(jié)果報(bào)告:
[ 0]: ZCZC GRD0226 260108
QU TYNZPCA
.
TYNTZ8X TYNZPCA
.XMNUOMF 260107
PLN 27MAR
1)
[ 1]: MF8155
[ 2]: B6483
[ 3]: JJN
[ 4]: 2340
[ 5]: (26MAR)
[ 6]: 26MAR
[ 7]: NKG
[ 8]: 2)
[ 9]: MF8155
[ 10]: B6483
[ 11]: NKG
[ 12]: 0220
[ 13]: TYN
[ 14]: 3)
[ 15]: MF8156
[ 16]: B6483
[ 17]: TYN
[ 18]: 0525
[ 19]: NKG
[ 20]: 4)
[ 21]: MF8156
[ 22]: B6483
[ 23]: NKG
[ 24]: 0900
[ 25]: JJN
[ 26]: SI: A/C CHG
=
NNNN
五、RegexBuddy(選擇語言C#)顯示的分組捕獲內(nèi)容(對(duì)每一條計(jì)劃捕獲的分組重新從1開始編號(hào))
正則表達(dá)式:
\n LF或ASCII中的0x0A(10)
\r CR或ASCII中的0x0D(13)
\b
:匹配單詞邊界處的空字符
以上是“如何實(shí)現(xiàn)SITA報(bào)文解碼匹配的正則表達(dá)式”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!