问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

谁高手指点,关于正则表达式的问题?

发布网友 发布时间:2022-04-23 05:31

我来回答

2个回答

懂视网 时间:2022-04-23 09:52

这次给大家带来使用正则多行模式与单行模式的图文详解,使用正则多行模式与单行模式的注意事项有哪些,下面就是实战案例,一起来看一下。

在Expresso中,测试“多行模式”

测试一

注意:这里样例文本中3eeeee后面没有回车,光标就在e的后面。匹配的结果是3eeeee,如上图的Search Results区中所示。

为什么这里不能匹配1abcde和2abc?

开启多行模式

^ 可以匹配字符串开头(字符串的开始位置),也可以匹配行的开头(即换行符 之后的位置)
$ 可以匹配字符串结尾(字符串的结束位置), 也可以匹配行的结尾(即换行符 之前的位置)

关闭多行模式

^ 只能匹配字符串开头
$ 只能匹配字符串结尾

知识点: 为回车符, 为换行符。在windows中,我们平常说的换行,实质上是先回车,后换行;下面有更详细解说。

如上图所示: 匹配 [CR]、 匹配[LF] <—— CR为回车 LF为换行
字符串多个段落,比如
ab
cd
e
在windows操作系统中其实是:ab[CR][LF]cd[CR][LF]e

在windows中,文本中的回车换行储存为: 0D 0A。也就是说,先储存的是“回车 ”<CR>,再储存的是“换行 ”<LF>
CR用符号' '表示, ASCII代码是13, 十六进制为0x0D;
LF用符号' '表示, ASCII代码是10, 十六进制为0x0A;

正则表达式:(?m)^(dw+)(s*)$

样例文本

匹配结果

在Expresso、PHP中,启用多行模式,"$" 匹配字符串结束位置或者 " " 之前的位置。

单行模式

开启单行模式: . 可以匹配任意字符(包括换行符)
关闭单行模式: . 只有匹配 非换行 的其它任意字符(.可匹配 ,即除了不匹配 外的所有字符。)

多行模式 影响 ^ 和 $ 的匹配
单行模式 影响 . 的匹配

多行模式中必定包含 ^ 或 $ 或同时包含,否则即使加了 m,也没有任何意义

单行模式和多行模式是八杆子打不着的两个概念,只是因为正则发展的历史原因,造就了这样两个MS互斥的概念
单行模式影响的是小数点“.”的匹配范围
多行模式影响的是“^”和“$”的匹配范围

至于后面几个概念,全局匹配,多行模式和贪婪模式之间也没有什么必然联系

全局匹配关闭,只匹配首次成功匹配项,全局匹配开启,匹配所有成功匹配项
全局模式是一些脚本语言中才有的概念
在进行匹配时,关闭全局模式,类似于.NET中的Match方法,开启全局模式,类似于.NET中的Matches方法
在进行替换时,关闭全局模式,类似于Java中的replaceFirst,开启全局模式,类似于Java中的replaceAll

(在进行匹配时,关闭全局模式,类似于PHP中的preg_ match函数;开启全局模式,类似于PHP中的preg_ match_ all函数)

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

基于PHP正则零宽断言的使用详解

正则表达式的模糊匹配功能如何实现

热心网友 时间:2022-04-23 07:00

高手实不敢当,对楼主疑问做简单说明

"/([\n\r]+)\t+/s":[\n\r],回车换行,[\n\r]+,回车换行出现1次及以上,([\n\r]+),捕获匹配的信息之后可以取出(表达式内部可以使用\?,?为一个数字,表示索引号,按顺序指定之前出现的捕获,比如此例中可以使用\1应用唯一的捕获),\t+横向制表符(就是键盘上的tab)出现1次或多次。最末的s表示按单行匹配字符串,单行的多行的区别是,"."在多行模式下不匹配回车换行,而在单行模式下则匹配。跟在最后的叫做modifier,相当于告知正则式引擎一些匹配参数

"/\<\!\-\-\{(.+?)\}\-\-\>/s":\转义字符(escaped sequence),就是说模式串中有些一些字符是对正则式引擎有意义的(比如\/[]+*等等),称为元字符(meta-character),如果你希望匹配元字符(比如我就想匹配+和*),则需要使用\作为前缀,告知正则式引擎,后续的字符不要解释他的意思,把它当作普通字符处理,比如想匹配“\”这个字符,可以写作“\\”,后面的\!\-\-\{表示把\都去掉的串,.+表示任意字符1次或多次,.+?表示非贪婪匹配,贪婪匹配就是尽可能多的匹配,非贪婪则相反表示尽可能少的匹配,详细用法不展开。

"/[\n\r\t]*\{ad\s+([a-zA-Z0-9_\[\]]+)\/(.+?)\}[\n\r\t]*/ie":和上面一致的东西不赘述,[a-z]表示接受字符集中从a到z的所有字符(无论ansi还是unicode字符集,a-z都是26个小写英文字母),[A-Z]和[0-9]同义,[a-zA-Z0-9_\[\]]整体表示大小写字母、数字、下划线、左右方括号。最后的ie,i表示忽略大小写,还真没见过e这种modifier

perl和javascript都支持将模式串(pattern)放在//之间。其他语言也许有支持的,本人不太清楚
正则表达式的问题?高手进

这个正则少点东西 应该能匹配到这里的.最好不要用.

请高手指点正则表达式:/^([A-Za-z0-9]{8,20})$/ 表达什么意思?

{8,20} 长度大于8小于20 )/ 匹配输入字符串的结束位置

正则表达式匹配问题?

这需要用正则表达式分两次替换,先把字母回车换行数字替换为字母空格数字,再把数字空格字母替换为数字回车换行字母,得到的结果就是整齐的文本了.

请问哪位高手精通正则表达式啊?我现在想要在js脚本端教验文本框只能输入...

正则可以是:^\d+,?\d+$使用方法:if(/^\d+(?:,\d+)?$/.test("文本框的值")){ alert("合法!")}else{ alert("不合法!");}如果不是的话,你可以在追问我。

正则表达式问题,高手速度来呀。。。

(A-Za-z]+)@是匹配字母至少一次后面加一个@符号 ((\w[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})分两部分 ((\w[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))和([a-zA-Z]{2,...

求正则表达式高手详细解答

\(?匹配一个(或没有 接着匹配几个空格 (\d{3})?是匹配一个3位数字,后面的?表示可以匹配一个或0个 \)?表示匹配一个)或没有 (?(1) [\-\s] )是一个分组,匹配一个?1开头,然后几个空格,后面可以跟一个-或空白 这个正则写的并不好 如果要匹配下面的电话号码,可以用(1-)?(\d{3...

关于PHP里中文正则表达式的问题

解释:[a-zA-Z_\x{4e00}-\x{9fa5}] //第一位,必须非数字,但又要满足其它条件 [\x{4e00}-\x{9fa5}\w]{2,11} //从第二位开始,必须满足全部条件,长度为2到11位(加第一位就是3到12位啦)。补充:\x{4e00}-\x{9fa5}这个就是汉字的Unicode范围。一定不要忘记最后那个 u ,没有...

正则表达式获得子匹配的问题 正则表达式高手 请进

首先用表达式 a寻找文本,得到a,表达式a报告成功,控制权将于表达式b;然后用b去寻找文本,得到b,控制权交于*;接着*告诉b需要尽可能多的匹配b,但是匹配不到也没有关系,于是b接着寻找,直至a处,这就找到了bbb,是吧,于是(b*)表达式报告成功。然后是表达式(a(b*))报告成功,对吧,而表达式...

正则表达式问题

)00)-02-29)考虑到这个正则表达式仅仅是用作验证,所以捕获组没有意义,只会占用资源,影响匹配效率,所以可以使用非捕获组来进行优化。^(?:(?!0000)[0-9]-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02]...

关于正则表达式中的(?:)问题

()的意思有两个,一个有的书上叫记忆,就是把匹配的字符保存在寄存器里,以备后用,另一个意思是分组,所以()又叫记忆分组。而(?:)只有分组的功能,分组的意思是把组内的部分看成是同一个对象对待,比如一个字符串,经常用来分割并列逻辑(就是'|')。所以分组符号只是不把匹配内容放到寄存器里,...

正则表达式或者怎么表示 正则表达式 点 常用的正则表达式 正则表达式.*? 正则表达式怎么用 正则表达式\d 正则表达式 非 正则表达式使用实例 Java 正则表达式
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
梦见父母有一方死亡的预兆 昨晚做梦梦见我的父母和丈夫都死了, 父母本来就去世很久了,并且他们一... 农产品流通与管理专业怎么样_就业方向_主要课程 鱿鱼须是海鲜吗 鱿鱼须有哪些挑选的小窍门 保密教育培训方案 下列各项业务中,应通过"固定资产清理”账户核算的有 pcr上岗证考完试会在什么时候公布 帮忙解一道会计题目 固定资产清理,不考虑税收,按题回答即可 pcr证书怎样考? 糖画熬糖为什么会返糖 新课标背景下小学班级授课制发展性诉求及变革 QQ炫舞合法、好听、个性昵称 抖音退出公会没有说违约金是多少可以不用赔违约金吗? 抖音主播退出工会后之前的收入能回到个人账户吗 抖音退出公会了收入还会被扣掉一半吗 疯狂打怪兽怎么卡宝箱怪,是一个公众,疯狂游乐场的游戏 疯狂打怪兽怎么卡宝箱怪,是一个公众,疯狂游乐场的游戏 联想ThinkPad笔记本怎么从win10还原win7?要具体教程。 thinkpad e10 一键恢复如何进入 thinkpade10怎样恢复出厂 联想Thinkpad的windows10如何回滚至原来的正版windows8 想开个传媒公司,大学学什么专业? 将来想开传媒公司或想进入传媒公司 应该学习什么专业的大学? 学传媒可以报什么专业 提干时中专学历没认证怎么办? 今年中专学历报考助理医师需要去学历认证吗? 平顶山市干部档案中专学历需要认证吗 管家婆 辉煌 单击版 网络版 什么区别 在不同区域都能使用网络版管家婆 滴滴打车过隧道费谁出呀? 坐滴滴专车的路桥费由谁了承担 大家帮忙给取个名字,端木令___,男孩 滴滴打车来回 过桥费谁付 姓端木的优雅点的名字 滴滴快车过路费谁来承担 滴滴打车走高速的过路费谁付 滴滴打车过路费由谁承担!??? 自家用花盆种的葱,根部突然发现这个白色的毛,好像是霉菌,谁知道这白毛是什么,影响食用吗? 请帮助起名,小男孩,姓氏是复姓端木,想取一个带三点水或阳字边的名字,拜托大家了. 端木燕这个名字适合男孩吗?我亲戚要给孩子起这个名字,男孩,合适吗?还有什么适合男生的名字呢?姓端木 有哪些人姓“端木”的? 树上长很多白色的东西象霉一样是什么? 烟草公司网审表怎么上传多张照片 生日蛋糕十大品牌排行榜什么牌子好? 怎样在QQ空间里上传好多张照片? 求伊丽莎白2:黄金时代2007年网盘在线观看资源,凯特·布兰切特主演的 百度知道怎么上传多张照片,谢谢 怎么样上传多张照片 《三色幻想:戒指的女王》免费在线观看完整版高清,求百度网盘资源