簡體   English   中英

使用Regex.Replace安全轉義hl7控制字符

[英]Using Regex.Replace to safely escape hl7 control character

在嘗試創建一個正則表達式2.5小時后,該正則表達式將把插入符號^替換為\\ S \\之后,我的最后一招是詢問社區。

消息示例:

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具有子類型是不夠聰明的。

參見此處: https : //social.msdn.microsoft.com/Forums/zh-CN/3b73edde-575c-42c8-91ed-a9957f7b6d4f/biztalk-hl7-variable-datatypes-ex-obx5?forum=biztalkgeneral

我最接近的是使用此正則表達式: (?<=((OBX(\\|))\\d{1,4}(\\|)(SN|CE)(\\|)(((.+?)\\|)(\\|))))((\\^))

但是,這不起作用,因為我只需要將其限制為OBX-5,並且不適用於插入符號之前的字符。

很抱歉,冗長的帖子! 感謝您可以提供的任何幫助。

平面文件不一致時也有類似情況...

我將使用自定義的管道組件,該組件逐行讀取流“行”並進行所需的任何更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM