iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何实现SITA报文解码匹配的正则表达式
  • 781
分享到

如何实现SITA报文解码匹配的正则表达式

2023-06-03 21:06:52 781人浏览 独家记忆
摘要

小编给大家分享一下如何实现SITA报文解码匹配的正则表达式,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!SITA报文解码匹配的正则表达式一、SITA报文ZCZC&

小编给大家分享一下如何实现SITA报文解码匹配的正则表达式,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

SITA报文解码匹配的正则表达式

一、SITA报文

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的报文

[N][FDOAGENT::HST][03-26 01:07:49]>>>[OnSITA2UpdatePlan]:: header.typestr=PLN!

//识别为SITA格式PLN报

[N][FDOAGENT::HST][03-26 01:07:49]>>>RegularExpesstionID = 139, Modify regnum = B6483 : acid = CXA8155, executedate = 20200327, etd = 1020, depad = ZSNJ, arrad = ZBYN

//使用139号正则表达式分组捕获提取需要的内容[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

//数据库查询得到计划的数据库ID:202003271020CXA8155ZSNJZBYN,update表 PLAN_ACTIVE计划。

[N][FDOAGENT::HST][03-26 01:07:49]>>>SndFDOudp:$#NOTICE$#FAG$#PLAN_ACTIVE$#U$#202003271020CXA8155ZSNJZBYN$#

//UDP方式通知FDO计划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 (......)

//将收到的报文写入数据库 TEL_RCV

[N][FDOAGENT::HST][03-26 01:07:50]>>>SndFDOudp:$#NOTICE$#FAG$#TEL_RCV$#I$#202003260010226GRD$#

//UDP方式通知FDO计划报文有变化

三、在regularexp.xml中定位以下内容:

    <regularexp>

    <regularexpression>\b(\w{2}\d{2,4}[A-Z]?)[ ]+(\w{2,6})[ ]+ILS\(.+?\)[ ]+([A-Z]{3})(\d{4})(\((\d{2}[A-Z]{3})\))?[ ]+\d{4}([A-Z]{3})\s*[\r]?\n</regularexpression>       正则表达式(必填)

       <id>139</id>       正则表达式的编号

       <type>MODIFY</type>  操作类型:CNL为取消航班,MODIFY为更改机号(必填)

       <fightmode>false</fightmode>  是否为连飞: true, false(必填)

       <fightnum></fightnum>  在是连飞的情况,才填写,只能填写2或者4(连飞为true时必填)

       <multirow>false</multirow>  正则表示式是否匹配多行:true,false(必填)

       <adic>1</adic>  [ 1]: MF8155航班号对应的第几个括号(整数)

       <regnum>2</regnum> [ 2]: B6483 机号对应的第几个括号(整数)

       <adic1></adic1>

第二个航班号(此为特殊处理那种两个航班号之间隔着一些说明信息,比如CZ6002 SVO-URC CZ6907这种格式, 一般格式上没有,一般不填写)

       <depad1>3</depad1> [ 3]: JJN

第一个航班的起飞机场对应的第几个括号(整数)

       <etd1>4</etd1> [ 4]: 2340第一个航班的预计起飞时间对应的第几个括号(整数)

       <arrad1>7</arrad1>[ 7]: NKG 第一个航班的降落机场对应的第几个括号(整数)

       <depad2></depad2>

       <etd2></etd2>

       <arrad2></arrad2>

       <date>6</date>[ 6]: 26MAR日期对应的第几个括号(整数)(若表达式带有日期,此项必填)

    </regularexp>

四、YART工具RegexTester.exe

——A tool to write and test regular expressions, generate VB/C# code, and compile assemblies. RegexOptions.Singleline feature added by deerchao.

设置: Results---->Report;Command-->Split然后执行Run

结果报告:

[  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#)显示的分组捕获内容(对每一条计划捕获的分组重新从1开始编号)

 如何实现SITA报文解码匹配的正则表达式

正则表达式:

\n  LF或ASCII中的0x0A(10)

\r  CR或ASCII中的0x0D(13)

\b:匹配单词边界处的空字符

以上是“如何实现SITA报文解码匹配的正则表达式”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: 如何实现SITA报文解码匹配的正则表达式

本文链接: https://www.lsjlt.com/news/235716.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • c#程序自启动怎么设置
    c# 程序的自启动方法有三种:注册表:在指定注册表项下创建新值,并将其设置为程序可执行文件路径。任务计划程序:创建一个新任务,并在触发器和动作部分分别指定登录时或特定时间触发,以及启动程...
    99+
    2024-05-14
    c#
  • c#怎么调用dll文件
    可在 c# 中轻松调用 dll 文件:引用 dll(使用 dllimport 特性)定义与 dll 函数签名匹配的函数原型调用 dll 函数(如同 c# 函数)附加技巧:使用 chars...
    99+
    2024-05-14
    c#
  • 如何构建 Golang RESTful API,并实现 CRUD 操作?
    通过创建 golang 项目并安装必要的包,我们可以构建一个功能齐全的 restful api。它使用 mysql 数据库进行 crud 操作:1. 创建和连接数据库;2. 定义数据结构...
    99+
    2024-05-14
    go crud mysql git golang
  • c#怎么添加类文件
    在c#中添加类文件的步骤:1. 创建新项目,2. 添加新类,3. 为类添加代码,4. 在另一个类中引用新类。using语句引用类文件所在的命名空间;new运算符创建类的新实例;点运算符访...
    99+
    2024-05-14
    c#
  • 使用 C++ 构建高性能服务器架构的最佳实践
    遵循 c++++ 中构建高性能服务器架构的最佳实践可以创建可扩展、可靠且可维护的系统:使用线程池以重用线程,提高性能。利用协程减少上下文切换和内存开销,提升性能。通过智能指针和引用计数优...
    99+
    2024-05-14
    c++ 高性能服务器架构 数据访问
  • c#怎么添加字段
    在 c# 中添加字段包括以下步骤:声明字段:在类或结构中使用 字段类型 字段名; 语法声明字段。访问修饰符:用于限制对字段的访问,如 private、public、protected 和...
    99+
    2024-05-14
    c#
  • c#中怎么添加引用
    c# 中添加引用的方法有四种:使用 nuget 包管理器添加软件包。添加项目引用以包含其他项目。手动编辑项目文件 (.csproj) 以添加引用。从编译器命令行使用 /reference...
    99+
    2024-05-14
    c#
  • c#怎么创建文本文件
    在 c# 中创建文本文件的方法包括:创建 filestream 对象以打开或创建文件。使用 streamwriter 写入文本至文件。关闭 streamwriter 对象释放资源。关闭 ...
    99+
    2024-05-14
    c#
  • c#怎么定义属性
    如何在 c# 中定义属性 属性是一种编程构造,它包含一个 get 访问器和一个 set 访问器,允许以一种类属性的方式访问字段。它们提供了一种安全且封装的方式来访问和修改类的内部数据。 ...
    99+
    2024-05-14
    c#
  • 基于 C++ 的服务器架构的安全性考虑因素
    在设计基于 c++++ 的服务器架构时,安全考虑至关重要:使用 std::string 或 std::vector 避免缓冲区溢出。使用正则表达式或库函数验证用户输入。采用输出转义防止跨...
    99+
    2024-05-14
    安全性 关键词: c++ 服务器架构 c++ lsp
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作