[英]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.