美文网首页JavaScript学习笔记
正则表达式学习笔记

正则表达式学习笔记

作者: Big丶Show | 来源:发表于2016-09-12 18:23 被阅读0次

<p>最近开始转学php。语法已经学的差不多,但是感觉感觉php中好多东西还是灵活,还是需要项目的历练。
回归主题,本来对于正则表达式我时充满恐惧的。但是老大说,搞php不懂正则表达式算什么。落泪……
看过兄弟连正则表达式的三个教学视频后,粗略感觉难度一般,需要多写写就会了。在此也希望不会的同学不要太恐惧。并且,在各种语言中,正则表达式的写法基本一致,只需要调用各门语言中处理正则表达式的函数即可。</p>

<h4> 正则表达式的格式</h4>

    `/原子和元字符/模式修正符号`

<p>其中//为定界符,有些语言不需要定界符号。有些语言也不支持模式修正
符号。</p>

  • 举例(通过html代码中筛选所有的图片地址):
    /<img(?:[&gt]*)\s*src=(?:'|")([&quot|']+)(?:'|")/

<h4> 正则表达式的构成</h4>
</br>

  • 定界符:
    <p>除了字母,数字 和正斜线 \ 以外的任何字符都可以为定界符号;比如 : ||//{}!!。</p>
  • 原子:
    <p>原子时正则表达式最基本的组成单位,而且必须至少要包含一个原子。是正则表达式可以单独使用的字符。它包含:所有打印字符(可以在屏幕上输出可见的字符) 非打印字符 (回车 空格)</p>
    <p><code></code>转义符
    所有有特殊意义的字符转移成没有特殊意义的字符。可以将一些没意义的字符转化为有意义的字符。
    一些常用特殊意义的字符:</p>

\d 任意一个数字---012
\D 任意一个非数字---- 与\d相对应
\s 任意一个空白字符---\n \t \r 空格 回车
\S 任意一个非空白-----与\s相对应
\w 任意一个字 -------数字、字母大小写以及_(下划线)
\W 任意一个非字------与\w相对应
. 除了换行符意以外的任意字符

<p>自定义原子表[]
比如:[12345](有子字符串“12345”)、[a-z]字符串包含'a到z任意字母'、[5-8a-c]字符串包含数字58或字母ac。</p>

  • 元字符:
    <p>修饰原子用的,如果想要作为原子使用 加<code></code>转义。
    一些常用特殊意义的字符:</p>

* 举例:/ab*c/---- a~c之间可以出现任意次b
+ 举例:/ab+c/ --a~c至少要出现一次b
? 举例:/ab?c/ --- a~c最多出现一次b
注意:以上三种匹配方式,ac之间只能有若干个b,不能出现其他字符。

<p></p>

^ 举例:/^on/ 放在正则表达式的第一个字符位置,字符串必须以on开头
& 举例:/on$/放在正则表达式的最后一个字符位置,字符串必须以on结尾
| 举例:/a|b/ 字符串中只要出现a或者b其中之一就好。

<p></p>

<p> {} :自定义原子出现个数</p>

/ab{3}c/---a~c之间只能出现3个b
/ab{2,5}c/-- a~c之间只能出现2到5次b
/ab{2,}c/----a~c之间出现不小于2次的b

<p></p>

<p>\b(边界)与\B(无边界) </p>

边界的定义:一个字符只要没有数字、字母、汉字、下划线,就是独立的一个字符,这个字符串的一侧有空白字符,则这一侧无边际。
举例:
$str=this is island;
$regex=/\bis\b/; 此时匹配到的是中间的is
$regex1=/\Bis\b/; 此时匹配到的是this中的is
$regex1=/\bis\B/; 此时匹配到的时island中的is
$regex1=/\Bis\B/; 此时匹配不到两边都是无边界的is。

<p></p>

<p>()</p>

1.作为大原子使用。/abc*/匹配的时多个c,而/(abc)*/匹配的是多个abc
2.改变优先级。|的优先级最低。/abc|def/匹配的是abcef或者abdef/ab(c|de)f/匹配的则是abcf或者abedf
3.子模式以及反向引用。举例:时间日期 2016-9-12 也可以写作2016/09/12或者2016.09.12
正则表达式:$regex = '/\d{4}(\W)\d{2}(\W)\d{2},(\w)就是一个子模式。
如果需要保证年月与月日之间的符号一致,则可以这么写正则表达式
$regex = '/\d{4}(\W)\d{2}\\\1\d{2}
(\W)为第一个子模式(这个表达式也只有一个子模式)。将这个子模式作为判断第二个符号的依据\\\1(若\w-\\\1也代表-),数字1代表子模式的序数。

<p></p>

  • 模式修正符:
    <p>位于正则表达式的右侧定界符之后,可以使用任意个,是对正则表达式的功能扩展。
    常用的模式修正符:</p>

i 举例:/abc/i 不区分大小写匹配
m 将字符串视为多行,任意一行都可以以正则开头。
s 将多行视为1行。
x 忽略模式中的空格。
U 取消贪婪模式 。元字符.*?也取消贪婪模式 ,但是如果两个都使用的话就会同时失效


<h4> 元字符的优先级(了解)</h4>
数字越小优先级越高

1.\
2.()[]
3.*+?{}
4.^$\B\b
5.|


<p>写的匆忙,不够详细。
附上兄弟连的正则表达式教学视频:http://i.56.com/lampbrother/videos</p>

相关文章

  • 学习笔记 正则表达式

    2021.01.19 北京海淀 -2℃ 小雪转晴 正则表达式学习笔记 说明:该笔记参考“菜鸟教程”网站正则表达式...

  • 正则表达式学习笔记

    正则表达式学习笔记 一篇记录了学习正则表达式的笔记。 1. 转义字符 在 HTMl 中转义字符以 & 符号开头,分...

  • Python学习随笔

    本笔记整理自中谷教育在线教育视频 学习笔记——正则表达式常用符号 这里学习过正则表达式后,简单做了一个爬虫程序,效...

  • Python ☞ day 11

    Python学习笔记之 正则表达式 re模块概述:Python自1.5以后增加了re的模块,提供了正则表达式模式...

  • python正则表达式学习拾遗

    本篇学习笔记参考re——正则表达式 所作,不明白之处可以参阅上述的官方文档。因为是个人学习笔记,所以并不会完全介绍...

  • 正则表达式

    python学习笔记-正则表达式 标签 : python 特殊符号和字符 re模块:核心函数和方法

  • 正则表达式学习笔记

    [TOC] 正则表达式学习笔记 1. cheatsheet 2. 介绍 2.1 character 有时我们希望m...

  • python爬虫day-13(正则表达式)

    个人学习笔记,方便自己查阅,仅供参考,欢迎交流 正则表达式 1.简单示例 开源中国提供的正则表达式测试网址:htt...

  • 笔记:正则表达式

    正则表达式基础部分笔记

  • 正则表达式

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

网友评论

    本文标题:正则表达式学习笔记

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