php正则表达式2,php正则表达式(2)
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)相关推荐
- python 正则表达式方法_Python正则表达式一: 基本使用方法
学习python的正则表达式,主要有两个方面学习: 第一,学习如何写正则表达式,主要是掌握其语法规范.正则表达式的语法规范是通用的,对各种开发语言都是一致的. 第二,学习如何使用正则表达式,也就是掌握 ...
- python 正则表达式 前瞻_正则表达式 For Python
Manarola 正则表达式有很多流派,也有很多的特性,不同的语言支持度也是不一样的.本篇文章是写Python中的正则表达式的用法的,介绍了一些可用特性,也指出了某些特性是不支持的. 本篇文章仅为学习 ...
- 前端开发中的 正则表达式 及常用正则表达式大全
RegExp 是正则表达式(Regular expression)的缩写,就是用一个"字符串"来描述一个特征,然后去验证另一个"字符串"是否符合这个特征.比如 ...
- python正则表达式操作指南_Python正则表达式操作指南
原文作者:A.M. Kuchling (amk@amk.ca) 翻译人员:FireHare 校对人员:Leal 适用版本:Python 1.5 及后续版本 摘要 本文是通过Python的 re 模块来 ...
- python爬虫正则表达式实例-使用正则表达式进行页面提取
使用正则表达式进行页面提取 上节课我们学习了如何使用 BeautifulSoup 来解析页面,这节课我们来学习下如何使用正则来解析页面. 正则表达式的基本概念 正则表达式基本语法 正则表达式常用函数 ...
- python正则表达式语法-python正则表达式语法大全讲解教程实例一
东尧爱分享 这是东尧每天一篇文章的第32天 东尧写文章的目标:分享东尧的经验和思考,帮你获取物质和精神两方面幸福. 在python爬虫中,我们经常会需要进行字符串的匹配,而正则表达式是一种用来匹配字符 ...
- 【计算理论】正则语言 ( 正则表达式原子定义 | 正则表达式递归定义 | 正则表达式语言原子定义 | 正则表达式语言结构归纳 | 正则表达式语言示例 | 根据正则表达式构造自动机 )
文章目录 一.正则表达式 定义 二. 正则表达式语言 原子定义 三.正则表达式语言 结构归纳定义 四.正则表达式语言 示例 五.空集 ∅\varnothing∅ 与 空字符 ε\varepsilonε ...
- python正则表达式模块_Python正则表达式函数模块
今天学习了Python中有关正则表达式的知识.关于正则表达式的语法,不作过多解释,网上有许多学习的资料.这里主要介绍python中常用的正则表达式处理函数. 方法/属性 作用 match() 决定 R ...
- java中正则表达式函数_java正则表达式PHP中的正则表达式函数介绍
java正则表达式PHP中的正则表达式函数介绍 正则表达式(Regular Expression) 正则表达式系统: 1.POSIX 2.Perl PHP中使用的regex是PCRE: NOTE:PC ...
- 经典正则表达式——常用的正则表达式
[内容] 正则表达式用于字符串处理,表单验证等场合,实用高效,但用到时总是不太把握,以致往往要上网查一番.我将一些常用的表达式收藏在这里,作备忘之用.本贴随时会更新. 匹配中文字符的正则表达式: [u ...
最新文章
- 企业名片小程序时代,打破纸质名片局限!
- PPTPD×××服务器架设
- listview 的 selection mode 训练小例子
- 利用Swift语言特性,随手写个伪随机数生成器
- javaweb家居用品线上销售系统_智能家居订单管理系统方案设计路线
- @RequestParam和@RequestBody区别
- .NET多线程总结和实例介绍
- Java面向对象(9)--方法的重写(override/overwrite)
- native react 变颜色 点击_在React Native中按下更改按钮样式(Change button style on press in React Native)...
- maven安装及集成myeclipse
- MAC 安装 Magento2 community edition 详细步骤
- 学java的困惑_学习Java - 关于一些代码困惑
- QThread与QWidget使用
- Shell命令学习笔记
- hdwiki 学习笔记 01
- mysql查询一张表中一共有多少条数据
- 409.最长回文串(力扣leetcode) 博主可答疑该问题
- T检验和p-value含义及计算公式
- 持久化存储PV与PVC
- 第二次作业:微信实例分析
热门文章
- 【OpenCV 4开发详解】可分离滤波
- 初学数据结构--链表
- dependent-name ‘xxx::yyy’ is parsed as a non-type, but instantiation yields a type
- 前端资源预加载并展示进度条
- redhat7企业版linuxlinux基本操作
- 分析 AIX 和 Linux 性能工具nmon
- Linux Named 进程启动、停止脚本
- 【Scala-spark.mlib】稠密矩阵和稀疏矩阵的创建及操作
- linux sed给空文件首行插入_Linux系统中sed命令在文件某行前后添加内容的用法
- python隐藏部分代码_python隐藏类中属性的3种实现方法