我没有java中的正则表达式的经验,但我认为我们可以使用regexp解决这个问题,它比我的例子更容易。
我有一个带有||
个符号的文本。文字可以看起来像:
1)aaa||bbb||ccc
,
2)aaa||||ccc
,
3)||bbb||ccc
,
4)|| ||cccc
等
我希望在第一个||
- bbb 之后提取文本,然后在第二个||
- ccc 之后提取文本。我做了:
Pattern p = Pattern.compile("||",Pattern,DOTALL);
String types[] = p.split(stringToParse);
但是当字符串没有3个部分时,这不起作用。
第二个想法是:
Pattern p = Pattern.compile("||",Pattern,DOTALL);
Matcher m= p.matcher(strToParse);
while (m.find()) {
System.out.println(m.group() + " " + m.start() + " " + m.end());
}
然后我知道||
何时发生并且可以做子串。
是否存在更简单,更简单的方法来解决这个问题?
答案 0 :(得分:0)
如上所述人们说不要将它用于HTML解析器。
Pattern p = Pattern.compile("(<br>)\\w*(<br>)");
Matcher m= p.matcher(c);
while (m.find()) {
System.out.println(m.group().replace("<br>", ""));// replace <br>.
}
答案 1 :(得分:0)
此:
String[] data = {
"aaa||bbb||ccc",
"aaa||||ccc",
"||bbb||ccc",
"|| ||cccc"
};
for (String string : data) {
String[] split = string.split(Pattern.quote("||"));
System.out.println("0:"+split[0] + ", 1:" + split[1] + " 2:" + split[2]);
}
给出:
0:aaa, 1:bbb 2:ccc
0:aaa, 1: 2:ccc
0:, 1:bbb 2:ccc
0:, 1: 2:cccc
请注意使用Pattern.quote()
转义正则表达式,|
为special regex characters。
答案 2 :(得分:0)
你误解了分裂的文档。 这将在stringToParse:
之间拆分字符串String types[] = between.split(stringToParse);
您可能希望在以下位置之间拆分字符串stringToParse:
String types[] = stringToParse.split(between);
例如:
String s = "a:b:c";
String letters[] = s.split(":");