`
ldb2741
  • 浏览: 32788 次
  • 性别: 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 返回与模式...

    正则表达式

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

    .net 正则表达式使用说明.pdf

    ### .NET中的正则表达式使用详解 在深入探讨.NET框架中正则表达式的使用之前,我们首先需要了解正则表达式的基本概念。正则表达式(Regular Expression)是一种强大的文本处理工具,能够帮助程序员执行复杂的字符串...

    JS正则表达式检测代码.doc

    此外,自JavaScript 1.2版本起,引入了一种特殊的语法形式来创建正则表达式,即使用斜杠(`/`)包裹的字符序列。这种简洁的语法极大地提高了正则表达式的可读性和易用性。 #### 二、正则表达式的创建方式 在...

    易语言源码易语言取正则子表达式源码.rar

    2. **易语言中的正则函数**:在易语言中,一般会提供一系列与正则表达式相关的函数,例如`正则表达式匹配`、`正则表达式替换`、`正则表达式查找所有`等。这些函数用于执行正则表达式的匹配、替换和查找等操作。 3. ...

    正则表达式学习笔记

    对于浮点数验证,通常需要考虑到小数点的存在,可以使用正则表达式`/^[-+]?\\d+(\\.\\d+)?$/`来完成。 #### 四、总结 正则表达式是处理字符串的强大工具,在实际开发中有着广泛的应用。本文介绍了几种常见的正则...

    Python的爬虫包Beautiful Soup中用正则表达式来搜索

    # 使用正则表达式匹配多个可能的class值 h1user_soup_list = soup.findAll(name="h1", attrs={"class": re.compile(r"h1user(\s\w+)?")}) for h1 in h1user_soup_list: print(h1.text) ``` 在这个例子中,`re....

    JavaScript正则表达式验证代码(推荐)

    可以使用正则表达式/^[a-zA-Z]+$/来进行匹配。如果字符串不满足条件,则会弹出提示信息告知用户输入错误。 5. 整数校验:判断输入的是否是整数,可以使用正则表达式/^[-+]?\d*$/。这个表达式可以接受前面带有正负号...

    linux shell 路径截取正则表达式

    本篇文章将详细讲解如何在Linux Shell中使用正则表达式进行路径截取。 首先,让我们了解一下在Shell中用于字符串操作的特殊符号`#`和`%`。这两个符号结合`*`使用,可以实现路径的截取。 1. `${variable#pattern}`...

    Oralce Regular Expression

    - **`REGEXP_SUBSTR`**:返回与正则表达式匹配的第一个子串。 - **`REGEXP_INSTR`**:返回匹配正则表达式的第一个位置。 - **`REGEXP_REPLACE`**:用另一个字符串替换所有匹配正则表达式的部分。 ##### 参数 - **...

    ASP.NET中Validation验证控件正则表达式特殊符号的说明

    在正则表达式中,它们用来将表达式的一部分视为一个单元进行重复匹配,或者用在后向引用中。它们的作用与数学表达式中的小括号类似,影响运算顺序或标记优先级。 7. 斜线“\”是一个转义字符,用于去除特殊字符的...

    最全面的JS表单验证

    它首先检查字符串是否为空,然后使用正则表达式匹配日期格式,最后创建一个Date对象进行进一步验证。 4. **字母数字下划线检查**: - `isNumberOr_Letter` 函数用于验证字符串是否只包含英文字母、数字和下划线。...

    Qt LineEdit输入数值限制实例

    正则表达式是一种强大的文本模式匹配工具,能够匹配各种复杂的字符串模式。在这个实例中,我们将用`QRegExpValidator`来限制`QLineEdit`中输入的数值范围。 首先,我们需要包含相关的头文件: ```cpp #include #...

    ASP—单元四 物业管理系统用户注册——验证控件.pdf

    正则表达式是一种强大的文本匹配工具,它通过组合特殊字符(元字符)来定义匹配规则。常见的元字符包括: - `\`:转义字符,用于匹配特殊字符,如`\n`匹配换行符。 - `*`:匹配前面的子表达式零次或多次。 - `+`...

    JS验证表达式(各类完整版)

    虽然给定的代码片段没有提供完整的电话号码验证函数,但是通常会使用正则表达式来匹配常见的电话号码格式。例如: ```javascript function isPhoneNumber(obj) { var reg = /^(\+\d{1,3})?[-\s]?(\d{2,4}[-\s]?)?(\...

    比较简单实用的使用正则三种版本的js去空格处理方法

    这里使用了全局匹配的正则表达式 `/^\s+|\s+$/g` 来匹配字符串开头 (`^\s+`) 或结尾 (`\s+$`) 的一个或多个空格,并将其替换为空字符串。`g` 标志表示全局匹配,确保所有匹配都被替换掉。 #### 四、`ltrim()` 方法 ...

    talend数据分析

    - **匹配检查**:使用正则表达式对列进行匹配测试,查看匹配和不匹配的数据。 - **元组查看**:针对不匹配的记录进行详细查看,便于问题定位和数据清洗。 7. **自定义正则表达式**: - **自定义规则定义**:用户...

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

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

    Oracle中判断字段是否为数字

    `REGEXP_LIKE`是Oracle提供的正则表达式匹配函数,支持复杂的模式匹配。若字段全由数字组成,可以使用以下正则表达式进行匹配: ```sql SELECT * FROM table WHERE REGEXP_LIKE(column, '^[0-9]+[0-9]$'); ``` ...

Global site tag (gtag.js) - Google Analytics