最近经常有协议文档过来,给定字段的offset ,filed name,format, len等信息,由于message的种类比较多,手工对照协议敲代码实在是辛苦,眼花缭乱的.于是想写个程序,读出所有message以及其字段来,然后自动生产代码.于是需要用到正则表达式.
正则一段时间不用几乎全部忘记了.何况自己也只是初步了解..于是又开始查工具.
符号:
? 0或者1次 ----比如[0-9]?匹配一个或者零个数字
* 任意次数(包含0) ----比如[0-9]*匹配多个或者零个数字
+ 至少一次 -----比如[0-9]+匹配一个或者多个数字
^ 匹配开头 ----- ^[a-z] 匹配开头是小写字母的字符串
$ 匹配结尾 ------[0-9]$匹配结尾是数组的字符串
346 NoMarketCodes Uint16 2 Number of market codes within this message. 0 to 4
"^[0-9][0-9]*\\s[A-Za-z]+\\s(Uint8|Uint16|Uint32|Uint64|Int16|Int32|Int64|String|string|Binary|(String\\s?\\/\\s?Binary))\\s[0-9]+\\s?.*")) 匹配omd格式的某个message中的field格式,譬如,346 NoMarketCodes Uint16 2 Number of market codes within this message. 0 to 4 .或者350 + 4nM NoSecurityCodes Uint16 2 Number of security codes within this message. 0 to 200
目前看来,能正确找出文档中的所有message及其字段.