create table LP_DICT_EST_OPTION (
ID VARCHAR2(32) not null,
CODE_JY VARCHAR2(20),
NAME_JY VARCHAR2(80),
REMARK VARCHAR2(1000),
DEL_FLAG VARCHAR2(2),
CREATED_BY VARCHAR2(32),
CREATED_DATE DATE,
UPDATED_BY VARCHAR2(32),
UPDATED_DATE DATE,
constraint PK_LP_DICT_EST_OPTION primary key (ID)
)这是由PowerDesigner生出来的建表语句,我想把表名:LP_DICT_EST_OPTION匹配出来还想匹配字段的定义:
ID VARCHAR2(32) not null,
CODE_JY VARCHAR2(20),
NAME_JY VARCHAR2(80),
REMARK VARCHAR2(1000),
DEL_FLAG VARCHAR2(2),
CREATED_BY VARCHAR2(32),
CREATED_DATE DATE,
UPDATED_BY VARCHAR2(32),
UPDATED_DATE DATE,
constraint PK_LP_DICT_EST_OPTION primary key (ID)
但是不会正则,怎么也弄不出来,请高手帮我写一个正则表达式吧,谢谢了~~
ID VARCHAR2(32) not null,
CODE_JY VARCHAR2(20),
NAME_JY VARCHAR2(80),
REMARK VARCHAR2(1000),
DEL_FLAG VARCHAR2(2),
CREATED_BY VARCHAR2(32),
CREATED_DATE DATE,
UPDATED_BY VARCHAR2(32),
UPDATED_DATE DATE,
constraint PK_LP_DICT_EST_OPTION primary key (ID)
)这是由PowerDesigner生出来的建表语句,我想把表名:LP_DICT_EST_OPTION匹配出来还想匹配字段的定义:
ID VARCHAR2(32) not null,
CODE_JY VARCHAR2(20),
NAME_JY VARCHAR2(80),
REMARK VARCHAR2(1000),
DEL_FLAG VARCHAR2(2),
CREATED_BY VARCHAR2(32),
CREATED_DATE DATE,
UPDATED_BY VARCHAR2(32),
UPDATED_DATE DATE,
constraint PK_LP_DICT_EST_OPTION primary key (ID)
但是不会正则,怎么也弄不出来,请高手帮我写一个正则表达式吧,谢谢了~~
"ID VARCHAR2(32) not null,";
String regex = "(?s)\\s+LP_DICT_EST_OPTION\\s+";
System.out.println(input.replaceAll(regex, " desired "));
拜托了,尽量写完整点吧,我代码也不会写,可能用到的代码如下,谢谢各位代码也帮我写出来吧String regEx="c.*";
Pattern pattern = Pattern.compile(regEx, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(tableStr);
System.out.println(matcher.group(0));
import java.util.regex.Pattern;public class Test { public static void main(String[] args) {
String sql = "create table LP_DICT_EST_OPTION (\n" +
" ID VARCHAR2(32) not null,\n" +
" CODE_JY VARCHAR2(20), \n" +
" NAME_JY VARCHAR2(80), \n" +
" REMARK VARCHAR2(1000), \n" +
" DEL_FLAG VARCHAR2(2), \n" +
" CREATED_BY VARCHAR2(32), \n" +
" CREATED_DATE DATE, \n" +
" UPDATED_BY VARCHAR2(32),\n" +
" UPDATED_DATE DATE, \n" +
" constraint PK_LP_DICT_EST_OPTION primary key (ID)\n" +
")\n";
String tableRegex = "(?i:create table)\\s+(.*?)\\s*\\(";
Pattern pattern = Pattern.compile(tableRegex);
Matcher matcher = pattern.matcher(sql);
while(matcher.find()) {
System.out.println("Tablename: " + matcher.group(1));
}
}
}
"ID VARCHAR2(32) not null,";
String regex = "(?s)\\s+table\\s+\\w+(?=\\s+\\()";
System.out.println(input.replaceAll(regex, " table YourDesiredTableName"));
CODE_JY VARCHAR2(20),
NAME_JY VARCHAR2(80),
REMARK VARCHAR2(1000),
DEL_FLAG VARCHAR2(2),
CREATED_BY VARCHAR2(32),
CREATED_DATE DATE,
UPDATED_BY VARCHAR2(32),
UPDATED_DATE DATE,
constraint PK_LP_DICT_EST_OPTION primary key (ID) 这些东西了~~
3楼朋友,能给我讲一下 String tableRegex = "(?i:create table)\\s+(.*?)\\s*\\("; 这个表达式是什么意思吗?我要是懂了这个,估计下面的自己也就写出来了
<SCRIPT type="text/javascript">
var sql= "create table LP_DICT_EST_OPTION (\n" +
" ID VARCHAR2(32) not null,\n" +
" CODE_JY VARCHAR2(20), \n" +
" NAME_JY VARCHAR2(80), \n" +
" REMARK VARCHAR2(1000), \n" +
" DEL_FLAG VARCHAR2(2), \n" +
" CREATED_BY VARCHAR2(32), \n" +
" CREATED_DATE DATE, \n" +
" UPDATED_BY VARCHAR2(32),\n" +
" UPDATED_DATE DATE, \n" +
" constraint PK_LP_DICT_EST_OPTION primary key (ID)\n" +
")\n";
var pattern = /create\stable\s(\w+)/;var a=sql.match(pattern);
alert(a[1]);
</SCRIPT>
var pattern = /create\stable\s(\w+)/;
应该为
var pattern = /create\stable\s(\w+)\s\(/;
CASE_INSENSITIVE
还是火龙果告诉我的!!
var a=sql.match(pattern);
//alert(a[2]);
a[1])可以取表名
a[2])可以取表字段 属性
Special constructs (non-capturing)
(?:X) X, as a non-capturing group
(?idmsux-idmsux) Nothing, but turns match flags i d m s u x on - off
(?idmsux-idmsux:X) X, as a non-capturing group with the given flags i d m s u x on - off
(?=X) X, via zero-width positive lookahead
(?!X) X, via zero-width negative lookahead
(?<=X) X, via zero-width positive lookbehind
(?<!X) X, via zero-width negative lookbehind
(?>X) X, as an independent, non-capturing group (?idmsux-idmsux:X) X, as a non-capturing group with the given flags i d m s u x on - off 应该就是对应
"(?i:create table)" 里面的i表示忽略大小写,整个表示:create table忽略大小写,然后按其分组。
分组的我见过"(?:create table)",而"(?i:create table)"这种还是第一次见来。 初学,不知道理解得对不对!