我正在寻找一种方法来解析具有可能使用的几个不同终止字符的子字符串。我应该使用不同的方法还是有办法使用正则表达式来整理字符?
我当前的代码使用:
smallstring = bigstring.substring(bigstring.indexOf("starthere"), bigstring.indexOf("endhere"));
最后一个索引可以是“]”或“;” 我需要解析器能够同时检测并终止子字符串。
为此使用String
'ssplit()
方法,它是工作的正确工具:
String[] data = "a,b.c;d".split("[,.;]");
在上面的示例中,,.;
可以使用单个正则表达式拆分使用三个不同分隔符 ( ) 的字符串。最终结果 a String[]
calleddata
将包含由分隔符分隔的所有字符串:
[a, b, c, d]
要检测结束索引,您可以编写
int endIndex = Math.min(bigstring.indexOf("]"), bigstring.indexOf(";"));
if(endIndex == -1) { endIndex = bigstring.length(); }
String smallString = bigstring.substring(startIndex, endIndex);
试试这个
String smallstring = bigstring.replaceAll(".*starthere(.*)endhere.*", "$1");