今天晚上在搞电影站的时候采集了些电影结果在导入数据库的时候发现出错了,数据库访问失败,以为是程序的问题最后发现是采集回来的数据有问题,主要是Access里的特殊字字符“[”在搞鬼。

原来很多电影一次不能导入成功老出错,于是一次导入50部、30、20……晕,一会行一会不行,最后终于发现问题原因啦,不能导入的电影都有个相同的地方:电影名称里面有个单独的“[”而没有“]”(不包含引号),于是我修改一下把缺少]加上就能导入了,原来是采集的时候很多电影少了个]。

我用Access打开数据库想把电影名称里面的[ 和 ] 全都去掉,没想到问题又来啦。查找替换]没问题很快搞定,结果这个]竟然不能查找,说“此模式字符串无效”,如下图:

后来幸好网上找到一个网友的博客里有提此问题,是Access的特殊字条,松了口气问题搞定。

付上网友的那篇文章转自http://www.softbunny.net/post/136.shtml

今天在生成一个新站的静态页面时系统报错, 看了一下, 问题出在查询时的”like ‘[马'”这一句上了, 到数据库里把那一条中的”[“删除就没问题了, 但保险起见, 又从Access中用”过滤”功能看了一下, 确实没有包含”[“的记录了, 就重新生成.

不想生成中又发现问题了, 还是同样的问题: “[“符号! 明明没有了的呀, 定位到出错的那条记录, 竟然真有!!! 新建一条查询, 查了一下, 竟然查不到那条记录@!$$#%%

在OFFICE 2007的HELP中搜了半天, 终于发现: 原来, “[“符号在ACCESS的过滤或查询中是作为特殊字符出现的, 用法有点象简单的正则表达式, 象”[1-9]”就是表示1-9之间的数字, 所以遇到查询或过滤中出现”[“时Access都会把它当作不完整的区间表达式而报错了.

试了一下, 发现在Access中用过滤或查询找包含”[“的记录时不能用”like ‘[‘”作为条件, 而应该用”like ‘[[]'”, 即用一对中括号”[]”把这半个中括号”[“括起来才行。

PS:之后又研究了下通配符的应用,要查找很多数据中的很多用中括号[]包含的数据并删除掉,比如:电影名[全集] 、电影名[高清] 、电影名[完结]。要把最后面的都删除掉,只需要在Access里查找[[]*]并替换成空就行了。

目前有1 条留言

  1. 2009年01月07日 22:58 小花   |  引用  |  #1     

    你好, 比如电影名字是 马刺VS黄蜂[20080504] 是否用‘[[]’替换以前的‘[’ ?
    谢谢!

    ifu25,2009-01-08 01:45 AM

    马刺VS黄蜂[20080504] ,这个电影名字根本没有必要改啊,如果你不想用中括号的话可以替换成小括号(),替换的时候要查找[[]替换成(,再查找]替换成)。明白?!

发表评论

/ 快捷键:Ctrl+Enter
加载中……