正则表达式的应用
匹配、查找、分割、替换
对于普通字符串处理函数和正则表达式字符处理函数,使用的原则:
能用普通字符串处理函数处理的,就不要用正则表达式处理。

原因:
普通字符串处理函数:效率高。简单。
正则表达式处理函数:效率相对低。复杂。功能强大。

匹配、查找
strstr(string $haystack,string $needle)
功能:查找needle在haystack中出现后的字符串
参数:
haystack 元字符串
needle   查找的字符串
返回:出现后的字符串

strpos(string $haystack,string $needle)
功能:在haystack查找needle首次出现的位置
参数:
haystack 原字符串
needle   要查找的字符串
返回:位置

strrpos(string $haystack,string $needle)
功能:在haystack查找needle最后一次出现的位置
参数:
haystack 原字符串
needle   要查找的字符串
返回:位置

substr(string $str,int $start[,int length])
功能:字符串的截取
参数:
str 原字符串
start 截取的开始
length 截取的长度,默认截取到字符串尾
返回:截取后的字符串

preg_match_all(string $pattern,string $subject,array $match)
功能:正则匹配
参数:
pattern 正则
subject 要进行匹配的字符串
match   匹配的结果
返回:匹配到的次数

preg_match(string $pattern,string $subject,array $match)
功能:正则匹配
参数:
pattern  正则
subject 要进行匹配的字符串
match   匹配的结果,仅返回第一次匹配到的结果
返回:匹配到的次数。(0~1)

preg_grep(string $pattern,array $input)
功能:正则匹配
参数:
pattern  正则
input    要进行匹配的字符串数组。
返回:匹配的结果,返回格式:数组

分割
explode(string $delimiter,string $str[,int $limit])
功能:分割
参数:
delimiter 分割的标识字符串
str       要进行分割的字符串
limit     分割的次数
返回:分割好的字符串。格式:数组

preg_split(string $pattern,string $subject)
功能:字符串的分割
参数:
pattern 正则
subject 要进行分割的字符串
返回:被分割好的字符串

替换
str_replace(mixed $search,mixed $replace,mixed $str)
功能:在str字符串中查找search替换成replace
参数:
search 要查找的字符串
replace 要替换的字符串
str    原字符串
返回:替换后的字符串

preg_replace(string $pattern,string $replace,string $subject)
功能:正则替换
参数:
pattern 正则表达式
replace 要进行替换的字符串
subject 原字符串
返回:替换后的字符串

贪婪模式和非贪婪模式
贪婪模式
.* 
非贪婪模式
.*?

【正则】day02的更多相关文章

  1. scrapy初试水 day02(正则提取)

    1.处理方式 法一 通过HtmlXPathSelectorimport scrapyfrom scrapy.selector import HtmlXPathSelectorclass DmozSpi ...

  2. Javascript正则对象方法与字符串正则方法总结

    正则对象 var reg = new Regexp('abc','gi') var reg = /abc/ig 正则方法 test方法(测试某个字符串是否匹配) var str = 'abc123'; ...

  3. C#-正则,常用几种数据解析-端午快乐

    在等待几个小时就是端午节了,这里预祝各位节日快乐. 这里分享的是几个在C#中常用的正则解析数据写法,其实就是Regex类,至于正则的匹配格式,请仔细阅读正则的api文档,此处不具体说明,谢谢. 开始吧 ...

  4. Javascript 中 with 的替代方案和String 中的正则方法

    这几天在升级自己的MVVM 框架,遇到很多小问题,就在这里统一解决了. with 语法 在代码中,要执行这么一个函数 function computeExpression(exp, scope) { ...

  5. JavaScript与PHP中正则

    一.JavaScript 有个在线调试正则的工具,点击查看工具.下面的所有示例代码,都可以在codepen上查看到. 1.创建正则表达式 var re = /ab+c/; //方式一 正则表达式字面量 ...

  6. Java正则速成秘籍(一)之招式篇

    导读 正则表达式是什么?有什么用? 正则表达式(Regular Expression)是一种文本规则,可以用来校验.查找.替换与规则匹配的文本. 又爱又恨的正则 正则表达式是一个强大的文本匹配工具,但 ...

  7. Java正则速成秘籍(二)之心法篇

    导读 正则表达式是什么?有什么用? 正则表达式(Regular Expression)是一种文本规则,可以用来校验.查找.替换与规则匹配的文本. 又爱又恨的正则 正则表达式是一个强大的文本匹配工具,但 ...

  8. Java正则速成秘籍(三)之见招拆招篇

    导读 正则表达式是什么?有什么用? 正则表达式(Regular Expression)是一种文本规则,可以用来校验.查找.替换与规则匹配的文本. 又爱又恨的正则 正则表达式是一个强大的文本匹配工具,但 ...

  9. python浅谈正则的常用方法

    python浅谈正则的常用方法覆盖范围70%以上 上一次很多朋友写文字屏蔽说到要用正则表达,其实不是我不想用(我正则用得不是很多,看过我之前爬虫的都知道,我直接用BeautifulSoup的网页标签去 ...

随机推荐

  1. ES6 class类中定义私有变量

    ES6 class类中定义私有变量 class类的不足 看起来, es6 中 class 的出现拉近了 JS 和传统 OOP 语言的距离.但是,它仅仅是一个语法糖罢了,不能实现传统 OOP 语言一样的 ...

  2. 【WPF on .NET Core 3.0】 Stylet演示项目 - 简易图书管理系统(2) - 单元测试

    上一章中我们完成了一个简单的登录功能, 这一章主要演示如何对Stylet工程中的ViewModel进行单元测试. 回忆一下我们的登录逻辑,主要有以下4点: 当"用户名"或" ...

  3. Win32 程序开发:窗口类结构体 WNDCLASS 和 WNDCLASSEX

    一.窗口类结构体简介 窗口类结构体包含了窗口的各种参数信息.比如:窗口的图标.菜单栏.背景颜色.窗口的消息处理等等. 窗口类结构体有两个:WNDCLASS(早期版本) 和 WNDCLASSEX(新版本 ...

  4. Python连载43-current中的map函数、xml文件

    一.current中的map函数 1.map(fn,*iterable,timeout=None) (1)跟map函数相类似(2)函数需要异步执行(3)timeout代表超时时间 (4)map和sub ...

  5. C#读取匿名对象的属性值的方法总结

    目录 1.通过反射的方式获取属性值 2.新建个扩展方法,将object转成对应的匿名对象 通过new出匿名对象,可以直接调用该匿名对象的属性名,获取属性值. var objUser = new {Na ...

  6. ubuntu 18.04 安装mysql 遇到语言格式不兼容性问题解决

    安装mysql的时候,遇到了这样一个错误:perl: warning: Setting locale failed. perl: warning: Please check that your loc ...

  7. 一份完整的PyCharm图解教程

    PyCharm 是一种 Python IDE,可以帮助程序员节约时间,提高生产效率.那么具体如何使用呢?本文从 PyCharm 安装到插件.外部工具.专业版功能等进行了一一介绍,希望能够帮助到大家. ...

  8. 【VM配置】配置主机名称、网卡和yum源配置

    一,.配置主机名 为了对主机能进行分区,除了要有ip地址外还需要主机名,主机之间可以通过这个类似域名的名称来相互访问.linux系统中主机名配置文件一般在/etc/hostname文件中.另外我们也可 ...

  9. MySQL-8.0.x DDL 原子性

    [1.mysql-8.0.x 新特性之 DDL 原子性] 在没有 DDL 原子性之前 DBA 对 DDL 语句基本上是无能为力的,比如说 DDL 执行的过程中停电了,这下就只有天知道了.实现上最终的愿 ...

  10. C++ const使用总结

    这里针对C++中const的一些一般用法进行一下简单的总结 一.定义常量 常量不可修改 : ; 与#define宏定义常量的区别:(1)const常量具有类型,编译器可以进行安全检查:#define宏 ...