8).定义包含某范围的字符规则

PHP用方括号“[start-end]”定义包含start-end范围内任意字符的规则,例如:“[a-z]”即定义包含a到z范围内任意字符的字符串,代码

<?php echo ereg("^[a-z]+$", "abc"); ?>    //true

将返回“true”,因为待验证的字符串“abc”满足规则:包含1~n个字符a~z范围内任意字符。

<?php echo ereg("^[a-z]+$", "ABC"); ?>    //false

将返回 false,因为待验证的字符串“ABC”不满足规则:包含1~n个字符“a”。

9).定义包含某范围的词规则

PHP用圆括号“(word1|word2|…)”定义包含word1、word2、…的任意字符串的规则,例如:“(wang|zhang)”即定义包含“wang”或“zhang”的任意字符的字符串,代码

<?php echo ereg("^(wang|zhang)+$", "wang and zhang"); ?>    //true

将返回“true”,因为待验证的字符串“wang and zhang”满足规则:以“wang”或“zhang”开头。

<?php echo ereg("^(wang|zhang)+$", "shi and jing"); ?>        //false

将返回 false,因为待验证的字符串“shi and jing”不满足规则:以“wang”或“zhang”开头。

10).空格字符的处理

空格字符可以简单的处理为普通字符“ ”,但在实际使用中常用“[[:space]]”来代替,这样在字符串中更加易读。例如:“I[[:space]]am”表示为“I am”。

11).特殊字符的处理

因为一些字符要用在一个正则表达式语法上,像(wang|zhang)中的圆括号,需要屏蔽掉这些字符,使之成为字符串的一部分,而不是具有功能性的表达式的一部分。用转义字符,即反斜杠“\”可以实现这种转换,例如:

在正则表达式中,需要转义的字符包括:^, $, (, ), ., [, |, *, ?, +, \ and {。

本节全面的介绍了如何构造一个正则表达式,即如何定义一个字符串组成规则。下一节,将给出一系列例子,通过例子,将进一步熟悉上述规则构造方法。

4 示例1验证

本小节实现利用PHP正则表达式验证URL合法性的示例。一个合法的URL如:

sjolzy.cn

其构造规则为:[协议]://[www].[域名].[com|net|org…]。

根据上一小节的构造正则表达式,可以构造下面的规则。

"^http://(www\ .)?.+\ .(com|net|org)$"

其中,"^http://”定义能匹配规则的字符串开头是"http://";"(www\ .)?"表示随后应该是0-1个“www”;而“.+”表示任意字符串;然后是一个“.”,转义字符“\”表明其仅仅是一个字符;最后的“(com|net|org)$”表明以com、net、org中其中一个结尾,此处,只列出这3种情况。完成验证URL合法性的函数如下所示。

function isValidDomain($domainName)

{

return(int)ereg("^(http|ftp)://(www\.)?.+\.(com|net|org)$",$domainName);

}

echo isValidDomain(http://www.sjolzy.cn);    //1

echo isValidDomain("http://sjolzy.com");    //1

echo isValidDomain("http://www.sjolzy.fr");    //0

echo isValidDomain("www.sjolzy.com");    //0

?>

5 示例2验证电话号码

本小节实现利用PHP正则表达式验证北京市电话号码合法性的的示例。合法的号码如:+86 010xxxxxxxx,其构造规则为:[+86] [010][八位数字]。

根据上一小节的构造正则表达式,可以构造下面的规则。

“^\+86[[:space:]]010[0-9]{8}$”

其中,“^\+86”定义能匹配规则的字符串开头是“+86”;“[[:space:]]”表示随后1个空格;而“[0-9]{8}$”表明以8个数字结尾。

完成验证北京市电话号码合法性的函数如下所示。

function isValidPhone($phoneNum)

{

echo (int)ereg("^\+86[[:space:]]010[0-9]{8}$", $phoneNum);

}

echo isValidPhone("+86 01012345678");          //1

echo isValidPhone("+86 010123456789");        //0

echo isValidPhone("+86 0101234567a");          //0

?>

php正则表达式2,php正则表达式(2)相关推荐

  1. python 正则表达式方法_Python正则表达式一: 基本使用方法

    学习python的正则表达式,主要有两个方面学习: 第一,学习如何写正则表达式,主要是掌握其语法规范.正则表达式的语法规范是通用的,对各种开发语言都是一致的. 第二,学习如何使用正则表达式,也就是掌握 ...

  2. python 正则表达式 前瞻_正则表达式 For Python

    Manarola 正则表达式有很多流派,也有很多的特性,不同的语言支持度也是不一样的.本篇文章是写Python中的正则表达式的用法的,介绍了一些可用特性,也指出了某些特性是不支持的. 本篇文章仅为学习 ...

  3. 前端开发中的 正则表达式 及常用正则表达式大全

    RegExp 是正则表达式(Regular expression)的缩写,就是用一个"字符串"来描述一个特征,然后去验证另一个"字符串"是否符合这个特征.比如 ...

  4. python正则表达式操作指南_Python正则表达式操作指南

    原文作者:A.M. Kuchling (amk@amk.ca) 翻译人员:FireHare 校对人员:Leal 适用版本:Python 1.5 及后续版本 摘要 本文是通过Python的 re 模块来 ...

  5. python爬虫正则表达式实例-使用正则表达式进行页面提取

    使用正则表达式进行页面提取 上节课我们学习了如何使用 BeautifulSoup 来解析页面,这节课我们来学习下如何使用正则来解析页面. 正则表达式的基本概念 正则表达式基本语法 正则表达式常用函数 ...

  6. python正则表达式语法-python正则表达式语法大全讲解教程实例一

    东尧爱分享 这是东尧每天一篇文章的第32天 东尧写文章的目标:分享东尧的经验和思考,帮你获取物质和精神两方面幸福. 在python爬虫中,我们经常会需要进行字符串的匹配,而正则表达式是一种用来匹配字符 ...

  7. 【计算理论】正则语言 ( 正则表达式原子定义 | 正则表达式递归定义 | 正则表达式语言原子定义 | 正则表达式语言结构归纳 | 正则表达式语言示例 | 根据正则表达式构造自动机 )

    文章目录 一.正则表达式 定义 二. 正则表达式语言 原子定义 三.正则表达式语言 结构归纳定义 四.正则表达式语言 示例 五.空集 ∅\varnothing∅ 与 空字符 ε\varepsilonε ...

  8. python正则表达式模块_Python正则表达式函数模块

    今天学习了Python中有关正则表达式的知识.关于正则表达式的语法,不作过多解释,网上有许多学习的资料.这里主要介绍python中常用的正则表达式处理函数. 方法/属性 作用 match() 决定 R ...

  9. java中正则表达式函数_java正则表达式PHP中的正则表达式函数介绍

    java正则表达式PHP中的正则表达式函数介绍 正则表达式(Regular Expression) 正则表达式系统: 1.POSIX 2.Perl PHP中使用的regex是PCRE: NOTE:PC ...

  10. 经典正则表达式——常用的正则表达式

    [内容] 正则表达式用于字符串处理,表单验证等场合,实用高效,但用到时总是不太把握,以致往往要上网查一番.我将一些常用的表达式收藏在这里,作备忘之用.本贴随时会更新. 匹配中文字符的正则表达式: [u ...

最新文章

  1. 企业名片小程序时代,打破纸质名片局限!
  2. PPTPD×××服务器架设
  3. listview 的 selection mode 训练小例子
  4. 利用Swift语言特性,随手写个伪随机数生成器
  5. javaweb家居用品线上销售系统_智能家居订单管理系统方案设计路线
  6. @RequestParam和@RequestBody区别
  7. .NET多线程总结和实例介绍
  8. Java面向对象(9)--方法的重写(override/overwrite)
  9. native react 变颜色 点击_在React Native中按下更改按钮样式(Change button style on press in React Native)...
  10. maven安装及集成myeclipse
  11. MAC 安装 Magento2 community edition 详细步骤
  12. 学java的困惑_学习Java - 关于一些代码困惑
  13. QThread与QWidget使用
  14. Shell命令学习笔记
  15. hdwiki 学习笔记 01
  16. mysql查询一张表中一共有多少条数据
  17. 409.最长回文串(力扣leetcode) 博主可答疑该问题
  18. T检验和p-value含义及计算公式
  19. 持久化存储PV与PVC
  20. 第二次作业:微信实例分析

热门文章

  1. 【OpenCV 4开发详解】可分离滤波
  2. 初学数据结构--链表
  3. dependent-name ‘xxx::yyy’ is parsed as a non-type, but instantiation yields a type
  4. 前端资源预加载并展示进度条
  5. redhat7企业版linuxlinux基本操作
  6. 分析 AIX 和 Linux 性能工具nmon
  7. Linux Named 进程启动、停止脚本
  8. 【Scala-spark.mlib】稠密矩阵和稀疏矩阵的创建及操作
  9. linux sed给空文件首行插入_Linux系统中sed命令在文件某行前后添加内容的用法
  10. python隐藏部分代码_python隐藏类中属性的3种实现方法