`
ldb2741
  • 浏览: 31921 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

用正则表达式匹配“空值”

阅读更多

最近在做一个项目,要读取文本文件导入数据库,,但是为了性能和界面友好的问题,于是打算导入之前检查文本文件的格式是否正确,如果不正确,则作出相应提示而停止导入,所以要对文本文件逐行扫描,然后检查每一行的格式,如果不符合约定的格式,则提示用户对应的行数。自然而然想到用正则表达式。但是就有个问题了,文本文件中有个title字段,格式很复杂,可以包括简繁中文,甚至五角星符号,所以用正则表达式的中文匹配是不现实了,而且还要考虑gbk或者utf8编码,相当麻烦,后来换个角度想,文本的每一行的不同字段是用tab键分开的,当一行读进来的时候,需要以tab键为分隔符将一行字符串拆分成数组。

比如文本文件的一行为“t1 t2 t3”(以tab分开)我们规定的格式为“t1 t2 t3 t4”,所以发现,读进来的一行少了一个字段t4,那么怎么验证呢,其实很简单,不管怎么样,因为格式是约定好的 ,我们建立数组存放的相应字段是确定的,因而

$a=array('','','','');

循环给数组$a的每个元素赋值,我们可以用正则检查是否数组的4个元素都不为空,结果会发现$a[3]为空值,正则表达式里好像没看到检验空值的,突然想起来\s是匹配空格的,然后又想,\s{0}代表0个空格,那不就是空值么,

$pattern = "/\s{0}/";

if(preg_match($pattern, $a[3])) echo "ok";

结果答案正合我意,突然恍然大悟,这不就等于if($a[3]=="")么,汗,饶了那么大个圈子

分享到:
评论

相关推荐

    精通正则表达式基于.NET ASP PHP JSP JavaScript

    其他的正则表达式匹配.php 其他的正则表达式匹配 取得正则表达式的全部匹配.php 取得正则表达式的全部匹配 返回与模式匹配的数组单元.php 返回与模式...

    正则表达式

    例如:下面的正则表达式匹配的就是位于单引号或双引号之内的所有字 符.但是,它要求开始和结束的引号匹配(例如两个都是双引号或者都是单引号): /[' "] [^ ' "]*[' "]/ 如果要求开始和结束的引号匹配,我们可以...

    打印模型子系统:将所有或标记的子系统打印到 EPS-matlab开发

    笔记: () 输出目录必须存在() 模型被递归扫描并进入掩码() 当指定了标签正则表达式时,只有子系统的那些将属性 'Tag' 设置为某些非空值匹配正则表达式被考虑。 6) 始终打印根系统。 7) 输出文件名以两种方式生成:...

    MySql基本查询、连接查询、子查询、正则表达查询讲解

    8、使用正则表达式查询 什么是查询? 怎么查的? 数据的准备如下: [sql] view plain copy create table STUDENT( STU_ID int primary KEY, STU_NAME char(10) not null, STU_AGE smallint unsigned not null,...

    Rulesets:是的,它称为规则集,而不是规则集

    本质上,这是一种DSL,它以类似于正则表达式的宏支持语法匹配数据 你怎么使用这个? 您可以使用程序提供的编译器,也可以将该项目作为库进行接口: 调用编译器: 生成项目并复制出.jar文件以及.bat或shell脚本...

    2019千峰Python超详细入门教程(百度云盘分享).docx

    ├─千锋Python教程:第02章 运算符与表达式(7集) │ │ .DS_Store │ │ │ ├─code │ │ 1、运算符与表达式.py │ │ 2、运算符与表达式.py │ │ │ └─video │ 千锋Python教程:10.算术&赋值&位&关系...

    PHP3程序设计

    9.1 正则表达式定义 129 9.1.1 方括号表达式 130 9.1.2 转义字符 130 9.2 POSIX风格的函数 131 9.2.1 ereg 和eregi 131 9.2.2 ereg_replace 和eregi_replace 132 9.2.3 Split 133 9.3 PERL风格函数 134 9.3.1 模式定...

    SQL必知必会(第3版)--详细书签版

    除本书外,他撰写的《正则表达式必知必会》也即将由人民邮电出版社出版。读者可以通过他的个人网站http://www.forta.com了解更多信息。 目录 封面 -14 常用操作速查 -13 扉页 -11 版权 -10 版权声明 -9 前言 -8 ...

    spring.net中文手册在线版

    11.4.3.正则表达式验证对象 11.4.4.通用验证对象 11.4.5.条件型验证 11.5.验证行为 11.5.1.错误消息行为 11.5.2.通用行为 11.6.引用验证对象 11.7.在ASP.NET中的使用技巧 11.7.1.显示验证错误 11.7.1.1.配置错误显示...

    asp.net知识库

    常用的匹配正则表达式和实例 经典正则表达式 delegate vs. event 我是谁?[C#] 表达式计算引擎 正式发布表达式计算引擎WfcExp V0.9(附源码) 运算表达式类的原理及其实现 #实现的18位身份证格式验证算法 身份证15To18...

    SQL培训第一期

    1.8.10.1 oracle正则表达式:去除<></>格式 select REGEXP_REPLACE(title,'<[^>]*>','') title from exam_question 1.8.11 rank() over (partition by …) 1.8.11.1 语法 select organcode,score,ranknum from ( ...

    freemarker总结

    上面的代码中的逻辑表达式用括号括起来主要是因为里面有>符号,由于FreeMarker会将>符号当成标签的结束字符,可能导致程序出错,为了避免这种情况,我们应该在凡是出现这些符号的地方都使用括号. Pythons are ...

Global site tag (gtag.js) - Google Analytics