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