想处得尖括号中的字符内容,比如:
如果字符串是xx<123>xx,希望得出123
如果字符串是xx<123<321>0>xx,希望得出123<321>0
如果字符串是xx<123<321><456>0>xx,希望得出123<321><456>0
如果字符串是xx<XX<1<2>1>XX>xx,希望得出XX<1<2>1>XX尖括号中里的尖括号可能是无尽嵌套的,希望路过的高人给个关于java的正则表达式。
如果字符串是xx<123>xx,希望得出123
如果字符串是xx<123<321>0>xx,希望得出123<321>0
如果字符串是xx<123<321><456>0>xx,希望得出123<321><456>0
如果字符串是xx<XX<1<2>1>XX>xx,希望得出XX<1<2>1>XX尖括号中里的尖括号可能是无尽嵌套的,希望路过的高人给个关于java的正则表达式。
其实不用正则表达式效率更高。
String s="xx <XX <1 <2>1>XX>xx";
System.out.println(s.substring(s.indexOf("<")+1, s.lastIndexOf(">")));
Matcher m=Pattern.compile(".*?<(.+)>").matcher(s);
while(m.find())
System.out.println(m.group(1));
大哥,我的意思不是先借助java语句来改变想要匹配的字符串后再匹配,而是直接用正则表达式来匹配搜索。
比如“xx <XX <1 <2>1>XX>xx”字符串直接用Matcher的m.find()找个相匹配的串,然后用group()输出。而不是把“xx <XX <1 <2>1>XX>xx”字符串sbuString成“XX <1 <2>1>XX”再匹配。
我举个例子,比如“XXX<123<ab>>XXX<321>XX”字符串应该匹配成“123<ab>”和“321”串,如果用subString的话就更本解决不了问题了。
请知道怎么写真接写表达式匹配的朋友帮下忙。
Perl能够支持的也是指定数量N个嵌套匹配