簡體   English   中英

正則表達式拆分分隔符

[英]Regex to split on delimiter

我有以下字符串:

;Spe \,\:\; cial;;;

我想用分號作為分隔符拆分它,但是以“\\”開頭的分號不應該算作分隔符。 所以我想得到類似的東西

["", "Spe \,\:\; cial", "", "", ""]

更新:

Java表示看起來像:

String s = ";Spe \\,\\:\\; cial;;;";

使用負面的后視

(?<!\\\\);

(注意,在這個表達式中實際上只有一個\\ - 即,表達式應該是(?<!\\); - 但反斜杠字符必須進行雙重轉義:一次是為了Java編譯器的利益,並且再次為了正則表達式引擎的利益。)

您想要提取由以下正則表達式捕獲的部分: ;?([^;]*)\\\\\\\\?; 因此,只要找到匹配項,就在字符串中搜索此模式:

Pattern pattern = Pattern.compile(";?([^;]*)\\\\?;");
Matcher matcher = pattern.matcher(yourString);
List<String> tokens = new ArrayList<String>();
while(matcher.find()){
   tokens.add(matcher.group(1));
}

String[] yourArray = tokens.toArray(new String[0]); // if you prefer an array 
                                                    // rather than a list

暫無
暫無

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

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