我试图解析输入行
8=FIX.4.2^A9=0126^A35=0^A34=000742599^A49=L3Q206N^A50=2J6L^A52=20130620-11:16:27.344^A369=000733325^A56=CME^A57=G^A142=US,IL^A1603=OMS2^A1604=0.1^A
这里有不同的数据字段,用^{a分隔。我试图得到各个数据字段(比如8=FIX.4.2,9=0126,35=0,等等)。问题是python有时将^A解释为单个字符(在vim中,这是ctrl-v,ctrl-A),有时也解释为包含两个字符的字符串“^A”。所以我试过
^{pr2}$但后来我知道了
for entry in entries:
print entries
我只是用原来的绳子结束,没有任何分裂。这是问题吗重新分割?在
^
是一个元字符,它只匹配字符串的开头。逃离它:在表达式中不需要使用
|
,尤其是当两个“alternate”字符串相同时。在但是,似乎您有
^{pr2}$\x07
或\a
控制字符,而不是两个字符^A
字符串。只需使用.split()
对该值进行拆分,不需要正则表达式:^
在正则表达式中有特殊的含义,因此应该首先对其进行转义。在来自docs:
^{pr2}$取决于那一行包含什么。在
如果要拆分2个字符的字符串
'^A'
,请转义regexps的特殊字符^
,在本例中可能意味着'\^A'
。在更有可能这是caret notation打印字节值为0x01的单个字符的方法,在这种情况下,您可能希望在
'\x01'
上拆分。在(您也可以使用string自己的
split()
函数,我猜这比用regexp来处理这么简单的事情要快得多)相关问题 更多 >
编程相关推荐