美文网首页
正则表达式

正则表达式

作者: code_nerd | 来源:发表于2018-01-04 11:09 被阅读0次

正则表达式在开发中不会频繁使用,但是需要使用的时候就需要去查阅,这里做一下学习笔记

正则表达式的作用

匹配 分割 替换 查找

正则表达式主要由两部分组成,pattern 和subject
pattern 是我们想要的结果集,subject 则是搜索的主体

其中pattern的一些知识 可以查阅 30分钟入门正则表达式
推荐一个博客更简单的学习正则表达式地址

//放一些常见的匹配

//匹配url
$pattern = '#^(http|https):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(?::\d{1,5})?(?:$|[?\/#])#i';

//匹配邮箱
$pattern = '/^[a-z0-9.!#$%&\'*+\/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])+\.(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i';
php中的函数查阅官方文档

正则匹配的主要工作,在于pattern的写法上,
以下做一些简单的说明

//第一个简单的php示例
$pattern = '/\d+/';//要查找的结果集 匹配一个以上的数字
$subject='dsd1230555d';//要查找的主体 字符串
$result=preg_match($pattern,$subject,$match);
var_dump($result);//打印是否匹配成功
var_dump($match);//打印匹配结果

//第一个简单的js 示例
var subject='123ddd';
var pattern =/\d+/;//不要加引号 js中的分隔符是/
var res = subject.match(pattern);//简单的理解是,js的字符串 继承自string 拥有string的函数
console.log(res);

元字符


.   匹配除换行符以外的任意字符
\w  匹配字母或数字或下划线或汉字
\s  匹配任意的空白符
\d  匹配数字 
\b  匹配单词的开始或结束
^   匹配字符串的开始
$   匹配字符串的结束

限定符

*   重复零次或更多次
+   重复一次或更多次
?   重复零次或一次
{n} 重复n次
{n,}    重复n次或更多次
{n,m}   重复n到m次

用于,限定该字符前的
[0-9]{10}//匹配10个数字
\d{10}//匹配10个数字
[aeiou]{3,}匹配3个及其以上的aeiou

范围符

[0-9] 等价于 \d
[a-z0-9A-Z_] 等价于 \w
[aeios] 匹配aeiou 中任意一个

分支条件

a|b|c 匹配字符中的a 或者b 或者c

分组

重复单个字符(直接在字符后面加上限定符就行了);但如果想要重复多个字符又该怎么办?你可以用小括号来指定子表达式(也叫做分组),然后你就可以指定这个子表达式的重复次数了

$pattern = '#([a]\d)+#';// 匹配a1a2
$subject='a1a2345677444dd33344';//
$result=preg_match($pattern,$subject,$match);

反义

有时需要查找不属于某个能简单定义的字符类的字符。比如想查找除了数字以外,其它任意字符都行的情况,这时需要用到反义

\W  匹配任意不是字母,数字,下划线,汉字的字符
\S  匹配任意不是空白符的字符
\D  匹配任意非数字的字符
\B  匹配不是单词开头或结束的位置
[^x]    匹配除了x以外的任意字符
[^aeiou]    匹配除了aeiou这几个字母以外的任意字符

常见匹配

(?:exp) 匹配exp 且包含exp
preg_match('#Windows(?:2000|XP|7)#', 'WindowsXP2000', $matchResult1);
//打印为 WindowsXP

(?=exp) 匹配exp前面的 
preg_match('#Windows(?=2000|XP|7)#', 'WindowsXP2000', $matchResult1);
//打印为 Windows

(?<=exp)匹配exp后面的
preg_match('#(?<=2000|XP|7)ssss#', 'WindowsXPssss', $matchResult1);
//打印为 ssss

相关文章

  • Linux命令行与Shell脚本编程大全-shell正则表达式

    本章内容: 定义正则表达式 了解基本正则表达式 扩展正则表达式 创建正则表达式 定义正则表达式 正则表达式是你定义...

  • 正则相关

    正则表达式基本语法 正则表达式常见字符 正则表达式特殊字符 正则表达式数量词 正则表达式边界匹配 正则表达式逻辑或...

  • 正则表达式系列-1

    正则表达式系列-1正则表达式系列-2正则表达式系列-3正则表达式系列-4 什么是正则表达式 正则表达式就是用事先定...

  • 正则表达式

    正则表达式 - 教程正则表达式 - 简介正则表达式 - 语法正则表达式 - 元字符正则表达式 - 运算符优先级正则...

  • Python基础入门 - 正则表达式与综合实战

    1. 初识正则表达式 1.1 介绍 步骤介绍正则表达式入门及应用正则表达式的进阶正则表达式案例 1.2 正则表达式...

  • Java正则表达式参考

    Java正则表达式入门 java正则表达式应用 深入浅出之正则表达式(一) 深入浅出之正则表达式(二) 正则表达式...

  • 正则表达式

    正则表达式 正则表达式就是记录文本规则的代码 正则表达式常用的元字符 正则表达式常用的限定符 正则表达式举例:这里...

  • Python爬虫(十)_正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • python正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • 正则表达式

    了解正则表达式基本语法 能够使用JavaScript的正则对象 正则表达式简介 什么是正则表达式 正则表达式:用于...

网友评论

      本文标题:正则表达式

      本文链接:https://www.haomeiwen.com/subject/fanlnxtx.html