我想用逗号分割字符串,但应忽略<p></p>
内的逗号。
例如,如果我有以下字符串
" Test1, test2, <p> test3, test4, test5, </p> , test6, test7"
我需要结果:
Test1
Test2
<p> test3, test4, test5, </p>
test6
test7
使用特殊字符我该如何实现?
答案 0 :(得分:1)
您可以使用此正则表达式,(?![^<p>]*</p>)
分割字符串:
String str = "Test1, test2, <p> test3, test4, test5, </p> , test6, test7";
String spl[] = str.split(",(?![^<p>]*</p>)");
<强>输出强>
Test1
test2
<p> test3, test4, test5, </p>
test6
test7
在这里演示:
答案 1 :(得分:0)
您可以先使用&#34; p&gt;&#34;进行拆分: {{1}}
您的示例中将包含三个temp元素:
现在在temp中的所有字符串中,替换&#39;&lt;&#;&#39; p&gt;&#39;&#39;和&#39;
最后,使用&#39;,&#39;分割每一行。再次,
除了一些(易于移除的)空字符串,它应该工作
答案 2 :(得分:0)
这应该有用,它不是最优的,对不起,但不是我的头脑。
public static void main(String args[]) {
String x = " Test1, test2, <p> test3, test4, test5, </p> , test6, test7";
String newX[];
newX = x.split(",");
String newString = "";
int j = 0;
int count = 0;
for(int i = 0; i < newX.length; i ++) {
if(newX[i].contains("<p>")) {
count ++;
j=i;
while(!newX[i].contains("</p>")) {
newString = newString + "," + newX[i];
newX[i] = "";
i++;
}
newString = newString + "," + newX[i];
newX[i] = "";
newX[j] = newString;
newX[j] = newX[j].replaceFirst(",", "");
}
else
count++;
}
String output[] = new String[count];
j = 0;
for(int i = 0; i < newX.length; i++) {
if(newX[i] != "" && j < count) {
output[j] = newX[i];
System.out.println(output[j]);
j++;
}
}
}