我有字符串
String x="http://www.allindiaflorist.com/imgs/arrangemen4.jpg***http://storyofpakistan.com/wp-content/uploads/2011/11/Rukn-AlaminMultan.jpg***" ;
我想在***
的基础上提取字符串,所以我应该得到大小为2的数组,
我这样做。
String[] explode=a.split("//***");
img1=explode[0]; //`it gives java.util.regex.patternSyntaxException`
我也试过
String[] explode=a.split("***");
img1=explode[0]; //`it gives java.util.regex.patternSyntaxException`
我可以编写可以搜索***
的自定义通用函数,但我想知道split()
无效的原因
感谢
答案 0 :(得分:3)
String[] explode=a.split(Pattern.quote("***"));
现在你不必为要逃脱的special character打破局面。方法“为指定的字符串返回文字模式字符串”。
(为了澄清,您收到错误是因为您应该逃避每个 *
。)
答案 1 :(得分:2)
使用正则表达式[*]{3}
。尝试,
String x="htt.....
String arr[] =x.split("[*]{3}");
答案 2 :(得分:2)
String str = "http://www.allindiaflorist.com/imgs/arrangemen4.jpg***http://storyofpakistan.com/wp-content/uploads/2011/11/Rukn-AlaminMultan.jpg***";
String delim = "\\*\\*\\*";
String[] arr= str.split(delim);
System.out.println(arr[0]);
System.out.println(arr[1]);
output
http://www.allindiaflorist.com/imgs/arrangemen4.jpg
http://storyofpakistan.com/wp-content/uploads/2011/11/Rukn-AlaminMultan.jpg
答案 3 :(得分:1)
使用*
\\
String[] arr=x.split("\\*\\*\\*");
答案 4 :(得分:1)
你可以试试这个:
String[] explode=a.split("\\Q***\\E");
\Q
开始引用正则表达式。
\E
结束引用正则表达式。
基本上,在\Q
和\E
之间,元字符*
将被视为普通字符(即*
),没有特殊含义。
答案 5 :(得分:0)
试试这个代码,你可以使用错误的正则表达式模式。 它应该在[]
里面public static void main(String args[])
{
String x="http://www.allindiaflorist.com/imgs/arrangemen4.jpg***http://storyofpakistan.com/wp-content/uploads/2011/11/Rukn-AlaminMultan.jpg***" ;
String[] explode=x.split("[***]");
String img1=explode[0];
System.out.println(img1);
}