正则表达式?
我想试着写一个建表的正则表达式,不知道错在哪里,请指出,谢谢
"/(\w+)\s[String|int|datetime|bit](\sdefault\s\'\w\')?/";
问题点数:20、回复次数:11Top
1 楼jFresH_MaN(十一月的萧邦-夜曲)回复于 2005-04-02 16:53:05 得分 7
"/(\w+)\s(String|int|datetime|bit)(\sdefault\s\'\w\')?/";
[]表示一个字符
()表示多个Top
2 楼zhiin(┈ Jcan ┈)回复于 2005-04-03 11:08:45 得分 0
楼上正解Top
3 楼NetinKon(新手上路)回复于 2005-04-03 15:59:10 得分 0
谢谢了,但为什么不能匹配那个default呢?Top
4 楼zhiin(┈ Jcan ┈)回复于 2005-04-03 16:48:49 得分 0
应该可以的啊~ 贴出你的测试代码!~`
Top
5 楼eglic(圪圪) (理由永远是谎言,信仰永远是自慰)回复于 2005-04-03 17:51:41 得分 2
"/(\w+)\s*(String|int|datetime|bit)(\s+default\s+\'\w\')?/";
Top
6 楼NetinKon(新手上路)回复于 2005-04-04 10:21:29 得分 0
谢谢上面的了
确实不行,但想应该可以的,不知道为什么不行
$str = "id int,name String default 'how are you'";
$patter2 = "/((\w+)\s(String|int|datetime|bit)(\sdefault\s\'\w\')?)(,+)/";
preg_match_all($patter2,$str,$out);
print_r($out);Top
7 楼xuzuning(唠叨)回复于 2005-04-04 10:28:28 得分 0
当然不行!
你只能匹配到“,”字符以前,而“default”在“,”之后Top
8 楼NetinKon(新手上路)回复于 2005-04-04 10:58:06 得分 0
谢谢了,不啊,我是不管去不去掉那个(,+)结果都是一样的。Top
9 楼xuzuning(唠叨)回复于 2005-04-04 11:03:53 得分 11
$str = "id int,name String default 'how are you'";
^____在你的规则串中用什么来匹配这个“,”呢???Top
10 楼xuzuning(唠叨)回复于 2005-04-04 11:20:55 得分 0
还有,你用什么来匹配'how are you'中的空格呢?Top
11 楼NetinKon(新手上路)回复于 2005-04-05 17:42:10 得分 0
谢谢唠叨了,我变为这样,"/((\w+)\s(String|int|datetime|bit)(\sdefault\s\'.*\')?)(,+)/";
能取出default 'how are you'但是不能,不能取出how are you不知道为什么Top




