比如有一个字符串:
String str = "start(aaa)";pattern我写成这样:
java.util.regex.Pattern p = java.util.regex.Pattern.compile("^values(aaa)&");boolean b = str.matches(str);
System.out.println(b);
打印出来的是:false
我想知道pattern如何写,b的值才能等于true
在线等,谢谢!!!!
String str = "start(aaa)";pattern我写成这样:
java.util.regex.Pattern p = java.util.regex.Pattern.compile("^values(aaa)&");boolean b = str.matches(str);
System.out.println(b);
打印出来的是:false
我想知道pattern如何写,b的值才能等于true
在线等,谢谢!!!!
String str = "start(aaa)";
boolean b = str.matches(str);
System.out.println(b);b的值依然是false
或者
Pattern p = Pattern.compile("start\\(aaa\\)");
String str = "start(aaa)";
Matcher m=p.matcher(str);
System.out.println(m.find());
里面有很多的列表,好好学学吧!
不对应该是
boolean b = p.matches("start\\(aaa\\)",str);
java正则挖取建表语句:
-------------------------------------------------
-- Export file for user SSTEST --
-- Created by SINO_PING on 2012-7-30, 18:16:27 --
-------------------------------------------------spool ciinsureriskwarning.logprompt
prompt Creating table CIINSURERISKWARNING
prompt ==================================
prompt
create table CIINSURERISKWARNING
(
DEMANDNO VARCHAR2(50) not null,
SERIALNO NUMBER not null,
RISKWARNINGTYPE VARCHAR2(2),
CLAIMCODE VARCHAR2(50),
COMPANYID VARCHAR2(8),
ACCIDENTTIME VARCHAR2(20),
ACCIDENTPLACE VARCHAR2(100)
)
;
comment on column CIINSURERISKWARNING.DEMANDNO
is '查询码';
comment on column CIINSURERISKWARNING.SERIALNO
is '序号';
comment on column CIINSURERISKWARNING.RISKWARNINGTYPE
is '风险警示类型';
comment on column CIINSURERISKWARNING.CLAIMCODE
is '理赔编号';
comment on column CIINSURERISKWARNING.COMPANYID
is '保险公司代码';
comment on column CIINSURERISKWARNING.ACCIDENTTIME
is '出险时间';
comment on column CIINSURERISKWARNING.ACCIDENTPLACE
is '查询码';
alter table CIINSURERISKWARNING
add constraint PK_CIINSURERISKWARNING primary key (DEMANDNO, SERIALNO);
create table CIINSURERISKWARNING
(
DEMANDNO VARCHAR2(50) not null,
SERIALNO NUMBER not null,
RISKWARNINGTYPE VARCHAR2(2),
CLAIMCODE VARCHAR2(50),
COMPANYID VARCHAR2(8),
ACCIDENTTIME VARCHAR2(20),
ACCIDENTPLACE VARCHAR2(100)
)
;spool off我的代码
Pattern p = Pattern.compile("(create table \\w+\\s*\\(.+\\);)");
Matcher m = p.matcher(buffer.toString());
while(m!=null && m.find()) {
System.out.println(m.group());
}
输出结果:
create table CIINSURERISKWARNING( DEMANDNO VARCHAR2(50) not null, SERIALNO NUMBER not null, RISKWARNINGTYPE VARCHAR2(2), CLAIMCODE VARCHAR2(50), COMPANYID VARCHAR2(8), ACCIDENTTIME VARCHAR2(20), ACCIDENTPLACE VARCHAR2(100));comment on column CIINSURERISKWARNING.DEMANDNO is '查询码';comment on column CIINSURERISKWARNING.SERIALNO is '序号';comment on column CIINSURERISKWARNING.RISKWARNINGTYPE is '风险警示类型';comment on column CIINSURERISKWARNING.CLAIMCODE is '理赔编号';comment on column CIINSURERISKWARNING.COMPANYID is '保险公司代码';comment on column CIINSURERISKWARNING.ACCIDENTTIME is '出险时间';comment on column CIINSURERISKWARNING.ACCIDENTPLACE is '查询码';alter table CIINSURERISKWARNING add constraint PK_CIINSURERISKWARNING primary key (DEMANDNO, SERIALNO);create table CIINSURERISKWARNING( DEMANDNO VARCHAR2(50) not null, SERIALNO NUMBER not null, RISKWARNINGTYPE VARCHAR2(2), CLAIMCODE VARCHAR2(50), COMPANYID VARCHAR2(8), ACCIDENTTIME VARCHAR2(20), ACCIDENTPLACE VARCHAR2(100));我想要的是只把建表语句挖出来,如下:
create table CIINSURERISKWARNING( DEMANDNO VARCHAR2(50) not null, SERIALNO NUMBER not null, RISKWARNINGTYPE VARCHAR2(2), CLAIMCODE VARCHAR2(50), COMPANYID VARCHAR2(8), ACCIDENTTIME VARCHAR2(20), ACCIDENTPLACE VARCHAR2(100));请高手指点一下,我的正则表达式为什么达不到目标那,谢谢
String str = "create table CIINSURERISKWARNING( DEMANDNO VARCHAR2(50) not null, SERIALNO NUMBER not null, RISKWARNINGTYPE VARCHAR2(2), CLAIMCODE VARCHAR2(50), COMPANYID VARCHAR2(8), ACCIDENTTIME VARCHAR2(20), ACCIDENTPLACE VARCHAR2(100));comment on column CIINSURERISKWARNING.DEMANDNO is '查询码';comment on column CIINSURERISKWARNING.SERIALNO is '序号';comment on column CIINSURERISKWARNING.RISKWARNINGTYPE is '风险警示类型';comment on column CIINSURERISKWARNING.CLAIMCODE is '理赔编号';comment on column CIINSURERISKWARNING.COMPANYID is '保险公司代码';comment on column CIINSURERISKWARNING.ACCIDENTTIME is '出险时间';comment on column CIINSURERISKWARNING.ACCIDENTPLACE is '查询码';alter table CIINSURERISKWARNING add constraint PK_CIINSURERISKWARNING primary key (DEMANDNO, SERIALNO);create table CIINSURERISKWARNING( DEMANDNO VARCHAR2(50) not null, SERIALNO NUMBER not null, RISKWARNINGTYPE VARCHAR2(2), CLAIMCODE VARCHAR2(50), COMPANYID VARCHAR2(8), ACCIDENTTIME VARCHAR2(20), ACCIDENTPLACE VARCHAR2(100));";
Pattern p = Pattern.compile("create\\s*table\\s*\\w+\\s*[(].+?[)]\\s*[)]");
Matcher m = p.matcher(str);
if(m.find()){
System.out.println(m.group());
}
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = "--More--(222%)";
Pattern pattern = Pattern.compile("--More--\\(\\d{1,3}%\\)");
Matcher macher = pattern.matcher(str);
System.out.println(macher.matches());
}}