2

我正在寻找一种方法来解析具有可能使用的几个不同终止字符的子字符串。我应该使用不同的方法还是有办法使用正则表达式来整理字符?

我当前的代码使用:

smallstring = bigstring.substring(bigstring.indexOf("starthere"), bigstring.indexOf("endhere"));

最后一个索引可以是“]”或“;” 我需要解析器能够同时检测并终止子字符串。

4

4 回答 4

0

为此使用String'ssplit()方法,它是工作的正确工具:

String[] data = "a,b.c;d".split("[,.;]");

在上面的示例中,,.;可以使用单个正则表达式拆分使用三个不同分隔符 ( ) 的字符串。最终结果 a String[]calleddata将包含由分隔符分隔的所有字符串:

[a, b, c, d]
于 2013-05-01T15:37:12.157 回答
0

要检测结束索引,您可以编写

int endIndex = Math.min(bigstring.indexOf("]"), bigstring.indexOf(";"));
if(endIndex == -1) { endIndex = bigstring.length(); }
String smallString = bigstring.substring(startIndex, endIndex);
于 2013-05-01T15:37:55.763 回答
0

试试这个

String smallstring = bigstring.replaceAll(".*starthere(.*)endhere.*", "$1");
于 2013-05-01T15:39:51.990 回答
0

使用正则表达式。在这里你可以测试它 http://ocpsoft.org/tutorials/regular-expressions/java-visual-regex-tester/

于 2013-05-01T15:40:34.457 回答