2.5小时后,尝试创建一个将\替换为Caret ^的正则表达式,我的最后选择是询问社区。 p>
示例消息:
OBX|1|SN|test one^example test one||^9||||||F
OBX|2|ST|test two^example test two||Critical||||||F
OBX|3|NM|test three^example test one||80|bpm|||||F
OBX|4|CE|1^Test Recorded||-3^U|ml|||||F
OBX|5|CE|2^Anchor||2^results||||||F
要求: OBX-5中的插入号需要替换为\ S \,但仅当它是OBX段且OBX-2的值类型为CE或SN时才需要。这样做的原因是Biztalk HL7反汇编程序无法处理OBX-5中的插入符号,因为知道OBX-2的类型为CE或SN值类型,然后OBX-5具有子类型是不够聪明的。
最接近我的是使用此正则表达式:
(?<=((OBX(\|))\d{1,4}(\|)(SN|CE)(\|)(((.+?)\|)(\|))))((\^))
但是,这不起作用,因为我只需要将其限制为OBX-5,并且不适用于插入符号之前的字符。
对冗长的帖子表示歉意!感谢您可以提供的任何帮助。
答案 0 :(得分:0)
平面文件不一致也有类似情况...
我将使用一个自定义管道组件,该组件逐行读取流,并进行所需的任何更改。