String str = "(aa){(dd)cbdsagchgkhdbvljck(ff)}";
顺城网站建设公司成都创新互联公司,顺城网站设计制作,有大型网站制作公司丰富经验。已为顺城上1000家提供企业网站建设服务。企业网站搭建\外贸网站制作要多少钱,请找那个售后服务好的顺城做网站的公司定做!
Pattern pattern = Pattern.compile("(?=\\()[^\\)]+");
Matcher matcher = pattern.matcher(str);
while(matcher.find())
{
System.out.println(matcher.group());
}
find()方法是部分匹配,是查找输入串中与模式匹配的子串。
matches()是全部匹配,是将整个输入串与模式匹配,因此只有整个字符串都符合正则表达式才会返回true
System.out.println(Pattern.matches("\\[.+?\\]", "[呵呵]"));
算法:
String str="5+(4-3))" 表达式
char kuohao[]; 用作括号堆栈
扫描str中的字符
1如果是(则入栈
2如果是)
a如果战不空出栈
b如果栈空,不匹配。算法结束
最后栈空则匹配
下面是我的实现
public class biaodashi {
public static void main(String args[])
{
int top=0;//堆指针
boolean end=true;//不匹配时只输出一次
char stack[]=new char[100];//存括号
String biaoda="(((1+(2)-6))";//表达式
char biao[]=biaoda.toCharArray();//将字符串转化成字符数组
System.out.println("表达式: "+biaoda);
for(int i=0;ibiao.lengthend;i++)//遍历表达式中所有字符
{
if(biao[i]=='(')//如果是(则入栈
{
stack[top]='(';
top++;
}
else if(biao[i]==')')//如果是)则出战
{
if(!(top==0))
top--;
else
{
System.out.println("括号不匹配");
end=false;
}
}
}//除循环两种可能
if(top==0end)
System.out.println("括号匹配");//出循环stack空
else if(top!=0end)
System.out.println("括号不匹配");//出循环时stack不空
}
}
[^}]表示不包括右大括号即可。
根据你的正则表达式,以下语句均合法:
${anythingYouNeed}
${0123$4{}
${}
换成{ 一样能用。
是这样吗?
public static boolean checkBalance(String expression){
if(expression.equals(a{b/(c − d ) + e/( f + g)} − h)){
return true;
}else if((a[b+(c+2)/d]+e)+f){
return false;
}
return true;
}
java-- 匹配{[()]}
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Test{
//匹配()[]{}
public static boolean check(String expr){
if(expr==null || "".equals(expr)) return true;
ListString list=new ArrayListString();
MapString,Stringmap=new HashMapString,String();
map.put("(", ")");
map.put("[", "]");
map.put("{", "}");
for(int i=0;iexpr.length();i++){
String ch=expr.charAt(i)+"";
if(map.keySet().contains(ch)){
list.add(ch);
}else if(map.values().contains(ch)){
if(list.isEmpty() || !ch.equals(map.get(list.get(list.size()-1)))){
return false;
}else{
list.remove(list.size()-1);
}
}
}
return list.isEmpty();
}
public static void main(String[] args) {
System.out.println(check("{([])}"));
System.out.println(check("{a(b[c{e}f(s)])}"));
System.out.println(check("{([]]]])}"));
}
}