簡體   English   中英

正則表達式用於替換特定位置的字符串

[英]Regex for replace the string on particular position

MSH|^~\\&|RAD|MCH|SOARCLIN|MCH|201309281506||ORU^R01|RMS|P|2.4 PID|0001|_MISSING_|059805^a~059805^a~059805^a||RENNER^KATHRYN^

在上述字符串中,我需要根據|替換字符串。 (管道符號)計數。

例如:

MSH管線要在(|)管道標志“ MCH”的第3個位置替換為“ ABC”

輸入:MSH | ^〜\\&| RAD | MCH | SOARCLIN | MCH | 201309281506 || ORU ^ R01 | RMS | P | 2.4

輸出:MSH | ^〜\\&| RAD | MCH | SOARCLIN | ABC | 201309281506 || ORU ^ R01 | RMS | P | 2.4

String repSection( String del, int count, String rep ){
    String[] toks = theString.split( Pattern.quote( del ) );
    toks[count] = rep;
    theString = String.join( del, toks );
}

呼叫:

String result = repSection( "|", 3, "ABC" );

這取決於單獨計數。 第三和第四管道字符之間沒有關系。

我比較喜歡這種花哨且難以維護的正則表達式。

s = s.replaceAll( "^((?:[^|]*\\|){3})[^|]*", "$1|ABC" );

同樣,這並不關心第三和第四管道符號之間的內容。

暫無
暫無

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

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