簡體   English   中英

正則表達式String.split()

[英]Regex String.split( )

我正在使用java來拆分表單的String:

String stringToSplit = "AAA BBB CCC DDD EEE FFF GGG HHH III JJJ KKK";

我正在使用

String[] tokens = stringToParse.split("\\s");

沿着空格分割字符串,給出:

tokens = {"AAA","BBB","CCC", "DDD","EEE","FFF","GGG","HHH","III", "JJJ", "KKK"} 

我現在需要做的是在大多數情況下沿着空白分割,但在特定情況下也要保持一些字符串。 例如,我希望“CCC DDD”和“III JJJ KKK”在我拆分時保持完整的字符串。 所以我希望我的數組標記為:

tokens = {"AAA","BBB","CCC DDD","EEE","FFF","GGG","HHH","III JJJ KKK"}

我會用什么正則表達式? 這可能嗎?

您可以用ccc_ddd替換ccc ddd,然后將下划線轉換回空格。

如果你要做很多這樣的事情,你可能想投資某種語法解析器

您可以使用以下方法找到所有連續的非空白字符,而不是使用split() ,但是使用替換也可以匹配包含空格的特定目標字符串:

Pattern p = Pattern.compile("CCC DDD|III JJJ KKK|\\S+");
Matcher m = p.matcher("AAA BBB CCC DDD EEE FFF GGG HHH III JJJ KKK");
while(m.find()) {
    System.out.println(m.group());
}

示例: http//ideone.com/AxI1CV

暫無
暫無

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

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