簡體   English   中英

當分隔符是數據的一部分時,Java拆分正則表達式

[英]Java split regexp when delimiter is part of the data

抱歉,這個問題已經解決,或者已經結案,但是我一直在尋找很長時間沒有答案。

我必須使用~分隔符分割從外部系統接收的行。

我有一個問題,因為某些數據包含~~ (〜重復兩次),在這種情況下,不得拆分數據。

因此,如果我收到A~B~C~~C~D我想將其拆分回去: A, B, C~~C, D

我不知道我必須使用什么正則表達式才能拆分~~

你可以分割

\b~\b

參見演示。

https://regex101.com/r/t3D2Jp/1

您可以使用

(?:^|\b)~(?:$|\b)

如果您也要刪除尾隨的

您可以使用(?<!~)~(?!~)進行負向前看並向后看~

String test = "A~B~C~~D~E";
System.out.println(
    Arrays.toString(
        test.split("(?<!~)~(?!~)")
    )
);

產量

[A, B, C~~D, E]

這也應該適用於兩個以上的連續~ ,例如,使用"A~B~C~~~D~E"

暫無
暫無

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

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