首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

正则位置匹配之简单运用

写在前面 本文仅对我遇到的一个关于字符串匹配替换的问题所了解到的正则运用做小小的分析记录。不详细介绍正则相关知识。...如果想了解下正则位置匹配相关的内容,实名推荐老姚出品的 https://zhuanlan.zhihu.com/p/27309508。 抛出问题 输入一个url,如果末尾没有/ 的话,需要自动加上。...正则表达式是匹配模式,要么匹配字符,要么匹配位置。—— 老姚 这里很明显是需要匹配位置,然后在匹配到的位置上加上 /。...\/)$/ 这个正则,它匹配的是结尾的位置并且这个位置后面不是 / ,所以最后一个字符无论是不是 / ,都会被再补上一个 / 。...解决 上面的正则确实是匹配了结尾的位置,但问题在于是以“结尾的位置”作为判断条件。 如何以最后一个字符为条件,精准匹配上结尾位置?这里用ES6中的 negative lookbehind ?<!

47540

PHP正则的使用

正则表达式,作为一种快速、便捷的处理字符串的工具,在各种编程语言中都有着广泛的用途,通过在PHP中的一些使用,下面记录一下关于PHP正则使用的一些技巧。...PHP中的正则函数: php中有两套正则函数,两者功能差不多,分别为: 一套是由PCRE(Perl Compatible Regular Expression)库提供的。...使用以“ereg_”为前缀命名的函数;(POSIX的正则函数库,自PHP 5.3以后,就不在推荐使用,从PHP6以后,就将被移除) 由于POSIX正则即将推出历史舞台,并且PCRE和perl的形式差不多...,更利于我们在perl和php之间切换,所以这里重点介绍PCRE正则的使用。...但上述正则表达式不匹配“12/34-5678”的格式。这是因为模式“[\W]”的结果“/”已经被存储。下个位置“\1”引用时,其匹配模式也是字符“/”。 当不需要存储匹配结果时使用非存储模式单元“(?

3.7K30
您找到你想要的搜索结果了吗?
是的
没有找到

正则】956- 正则表达式有几种位置匹配模式?

最近再一次重温老姚大佬的《JavaScript 正则表达式迷你书》 , 并将核心知识点整理一遍,方便复习。 原书写得非常棒,建议看下原书啦。...地址:https://github.com/qdlaoyao/js-regex-mini-book 位置匹配,就是要匹配每个字符两边的位置。 在 ES5 中有6个位置:^,$,\b,\B,(?...\b 和 \B \b 匹配单词边界,即 \w 和 \W 之间的位置,包括 \w 和 ^ 之间的位置,和 \w 和 之间的位置。...=p) 匹配前面是 p 的位置,而 (?!p) 则匹配前面不是 p 的位置。 "hello".replace(/(?...\b) 等于 \B ,要求当前是一个位置,但不是 \b 前面的位置 // "12,345,678 123,456,789" 数据格式化 let num = 1888; num.toFixed(2).replace

1.3K30

学习正则(第二天)位置匹配

Dear,大家好,我是“前端小鑫同学”,长期从事前端开发,安卓开发,热衷技术,在编程路上越走越远~ 正则中的位置就相当于我们数组的下标,标识字符所在的位置,那我们在正则里面用来标示位置的关键字都有哪些呢...开头插入字符(替换) 正则:/^/gm 待替换字符:helloworld 替换结果: 02. 匹配结尾:美元符($) 001....命中p的前面位置:(?=p) 正则:/(?=o)/gm 说明:如下图所示,成功找到字符串中每个o前面的位置。 04. 命中除了p前面的其他位置:(?!p) 正则:/(?!...e)/gm 说明:如下图所示,成功找到字符串中除了e前面的其他位置。 如下图整理了正则中的位置的图示,因语言兼容版本的问题,更多了可以自行补充一下: 05. 案例分析: 001....^); 第三版: 最终正则的图示: 稍加扩展: 当我们的字符串的内容稍加改变后,我们上面的正则将变得不那么顺手,请看下图: 那这个问题又该怎么办呢?

22520

PHP 正则表达式及常用正则汇总

(一个双字节字符长度计2,ASCII字符计1) 匹配空白行的正则表达式:\n\s*\r 评注:可以用来删除空白行 匹配HTML标记的正则表达式:<(\S*?)...匹配空行的正则表达式:\n[\s| ]*\r 28.    匹配HTML标记的正则表达式:/.*|/ 29.    ...    ^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的Multiline 属性,^ 也匹配 ’\n’ 或 ’\r’ 之后的位置。 42.    43....    $ 匹配输入字符串的结束位置。如果设置了 RegExp 对象的Multiline 属性,$ 也匹配 ’\n’ 或 ’\r’ 之前的位置。 44.    45....\b 匹配一个单词边界,也就是指单词和空格间的位置。 79.    80.    \B 匹配非单词边界。 81.    82.    \cx 匹配由x指明的控制字符。 83.    84.

3.7K40

PHP正则表达式_python正则匹配字母

一、正则表达式语法(Perl风格) 1、模式规则   /php/ 字符串前后加上两条斜杠即可 2、匹配函数    preg_match(’/php/’,php)   参数1 模式   参数2 字符串...---- 二、正则表达式中的元素 介绍   1、正则表达式中包含三种元素分别为:量词、元字符、修饰符   2、前导字符串:就是符号前面的一个字符或字符串 量词 量词 说明 + 匹配任何至少包含一个前导字符串...a-zA-Z0-9和下划线的字符串 \d 匹配任何包含数字字符 \D 匹配任何非数字字符 \s 匹配任何空白字符 \S 匹配任何非空白字符 \b 匹配是否到达了单词边界 \B 匹配没有到达了单词边界 \ 匹配正则中的特殊字符...  在字符串匹配模式的所有出现,然后将所有匹配的全部放入数组 4、preg_quote()   将特殊字符转义   特殊字符包含 $ ^ * () + = {} [] | \ :   定界正则...'); print_r($str); //结果为rray ( [0] => cb [1] => bc ) 学习总结   学习好正则表达式,不是一朝一夕的事,要掌握好这些基本的元素。

2.7K20

PHP正则表达式

,遵循以下2个基本原则: 1.最左原则:正则表达式总是从目标字符串的最左侧开始,依次匹配,直到匹配到符合表达式要求的部分,或直到匹配目标字符串的结束。...2.最长原则:对于匹配到的目标字符串,正则表达式总是会匹配到符合正则表达式要求的最长的部分;即贪婪模式 那怎么开始呢,首先从分隔符开始写起,常用包括 / ; #;~,用于表明一串正则的开始。...正则表达式中可以使用 ASCII 编码。 • \nm标识一个八进制转义值或一个向后引用。如果 \nm 之前至少有 nm 个获得子表达式,则 nm 为向后引用。...匹配除 “\n” 之外的任何单个字符 • ^ 匹配输入字符串的开始位置。在字符域[]中表示取反,如'[^\w]'等于'\w';而^\w表示以单词字符开头。 • 匹配输入字符串的结束位置。...d/'; preg_match($pattern,$str,$match); var_dump($match) ;//asd php常用正则函数; 匹配

4.5K10

PHP正则表达式

正则表达式 1、正则表达式中包含三种元素分别为:量词、元字符、修饰符 2、前导字符串:就是符号前面的一个字符或字符串 量词 说明 + 匹配任何至少包含一个前导字符串 * 匹配任何包含零个或多个前导字符串...a-zA-Z0-9和下划线的字符串 \d 匹配任何包含数字字符 \D 匹配任何非数字字符 \s 匹配任何空白字符 \S 匹配任何非空白字符 \b 匹配是否到达了单词边界 \B 匹配没有到达了单词边界 \ 匹配正则中的特殊字符...\w+php/','php123phpphp456php',$arr);   print_r($arr);   //结果为Array ( [0] => Array ( [0] => php123phpphp456php...('/php[0-9]/','php5php6php7',$arr);   print_r($arr);   //结果为Array ( [0] => Array ( [0] => php5...本文链接:https://www.xy586.top/12426.html 转载请注明文章来源:行云博客 » PHP正则表达式

1.5K10

PHP中PCRE正则解析代码详解

这里就不是字符集的事儿了,在PHP中很多函数的处理默认是unicode中的UTF-8编码格式。那么废话不多说,直接开始正题。 二、PHP函数mb_split解析 <?...); 打印结果如下: Array( [0] = 测 [1] = 试 [2] = 一 [3] = 下 ) 四、PCRE中的/u解析 在PHP中,正则的定界符可以为#、%、...在一个正则中有时后面会有些修饰符。那么他们都是什么意思呢? 比如: %[\x{4e00}-\x{9fa5}]+%u 其中后面的修饰符u代码表以正则匹配以utf-8的编码格式匹配。 例子一: <?...在PHP正则中\x用来表示16进制。...中文的UNICODE码点在4E00 – 9FFF (这里说的都是16进制) 所以,正则匹配写法就是区间[],[\x{4E00}-\x{9FFF}] 这两个正则的效果都是一样的。

1.2K40

php 手机号正则_正则验证手机号是否合法

当我在进行PHP网页开发的时候,直接采用在网上找的手机号的正则表达式验证,结果后来测试的时候发现:当我使用的手机号177开头的进行输入时,竟然显示请输入正确的手机号,后来一看正则表达式是没有设定17开头的号码...,于是又进行了学习,最终,得到了最新手机号的正则表达式验证(如下代码),以供自己和大家日后学习使用。...//$phone存放手机号,$phoneErr存放手机号的错误信息 //首先判定手机号不为空,然后进行正则表达式的手机号验证 if(!...empty($phone)) { //手机号正则表达式验证语句 if(!...除此以外,还发现了菜鸟工具的正则表达式的在线测试工具,可以直接生成各种语言的正则表达式验证语句,很好用。正则表达式在线测试|菜鸟工具 最后,对于下面博主的文章表示十分感谢,学习到了新东西,开心。

2.8K20

第二章 正则表达式位置匹配攻略

第二章 正则表达式位置匹配攻略 正则表达式是匹配模式,要么匹配字符,要么匹配位置。请记住这句话。 然而大部分人学习正则时,对于匹配位置的重视程度没有那么高。 本章讲讲正则匹配位置的总总。...把位置理解空字符,是对位置非常有效的理解方式。 4. 相关案例 4.1 不匹配任何东西的正则 让你写个正则不匹配任何东西 easy,/.^/ 因为此正则要求只有一个字符,但该字符后面是开头。...要求当前是一个位置,但不是\b前面的位置,其实(?!\b)说的就是\B。 因此最终正则变成了:/\B(?=(\d{3})+\b)/g。...此题,如果写成多个正则来判断,比较容易。但要写成一个正则就比较困难。 那么,我们就来挑战一下。看看我们对位置的理解是否深刻。 4.3.1 简化 不考虑“但必须至少包括2种字符”这一条件。...掌握匹配位置的这6个锚字符,给我们解决正则问题一个新工具。

2K100
领券