正则不能输入特殊字符_正则表达式语法学习和在线练习


标题: 正则表达式语法学习和在线练习
作者: 梦幻之心星 sky-seeker@qq.com
标签: [#正则表达式,#语法,#学习,#练习]
目录: [语法]
日期: 2021-01-26

背景说明

  • 正则表达式使搜索和替换操作更加灵活高效。
  • 许多程序设计语言都支持使用正则表达式进行字符串操作。
  • 正则表达式是由普通字符和特殊字符组成的文字模式。
  • 正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。
  • 正则表达式描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。

语法说明

普通字符

  • 普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。

    字符描述
    [ABC]匹配字符集合中的任意一个字符
    [^ABC]匹配字符集合中未包含的任意字符
    [A-Z]匹配指定范围内的任意字符
    [^A-Z]匹配任何不在指定范围内的任意字符

非打印字符

  • 非打印字符也可以是正则表达式的组成部分。

    字符描述
    \cx匹配由x指明的控制字符。x的值必须为 A-Za-z 之一
    \f匹配一个换页符。等价于 \x0c\cL
    \n匹配一个换行符。等价于 \x0a\cJ
    \r匹配一个回车符。等价于 \x0d\cM
    \t匹配一个制表符。等价于 \x09\cI
    \v匹配一个垂直制表符。等价于 \x0b\cK
    \s匹配任何空白字符,包括空格、制表符、换页符等
    \S匹配任何非空白字符
    \w匹配字母、数字、下划线、汉字
    \W匹配非字母、数字、下划线、汉字
    \d匹配一个数字字符。等价于 [0-9]
    \D匹配一个非数字字符。等价于 [0-9]

特殊字符

  • 匹配特殊字符时必须进行转义,即放置反斜杠字\在特殊字符前面。

    特别字符描述
    \将下一个字符标记为一个特殊字符
    .匹配除换行符(\n\r)之外的任何单个字符
    |匹配二者之一

限定符

  • 限定符用来指定正则表达式的一个给定组件的出现次数。

    字符描述
    *匹配前面的子表达式零次或多次。等价于 {0,}
    +匹配前面的子表达式一次或多次。等价于 {1,}
    ?匹配前面的子表达式零次或一次。等价于 {0,1}
    {n}n 是一个非负整数。匹配确定的 n 次
    {n,}n 是一个非负整数。至少匹配 n 次
    {n,m}mn 均为非负整数,其中 n <= m 。最少匹配 n 次且最多匹配 m 次

捕获元

  • 捕获分组的捕获匹配结果可以通过$n(表示第 n 个捕获组的内容)查看。

    字符描述
    (exp)匹配 exp 并捕获这一匹配
    (?:exp)匹配 exp 但不捕获匹配结果。也就是说这是一个非捕获匹配
    exp1(?=exp2)正向肯定预查。用于查找 exp2 前面的 exp1
    exp1(?!exp2)正向否定预查。用于查找后面不是 exp2exp1
    (?<=exp2)exp1反向肯定预查,与正向肯定预查类似,只是方向相反。用于查找 exp2 后面的 exp1
    (?反向否定预查,与正向否定预查类似,只是方向相反。用于查找前面不是 exp2exp1

定位符

  • 定位符将正则表达式固定到行首或行尾,不能与限定符一起使用。

    字符描述
    ^匹配输入字符串开始的位置
    $匹配输入字符串结尾的位置
    \b匹配一个单词边界,即单词和空格间的位置
    \B匹配非单词边界

修饰符

  • 用于指定额外的匹配策略。位于表达式之外

    修饰符含义描述
    iignore 将匹配设置为不区分大小写
    gglobal 全局匹配,查找所有的匹配项。
    mmultiline多行匹配,使边界字符 ^$ 匹配每一行的开头和结尾
    s特殊字符圆点 . 中包含换行符 \n默认情况下的圆点 . 是匹配除换行符 \n 之外的任何字符,加上 s 修饰符之后, . 中包含换行符 \n

运算符优先级

  • 相同优先级的从左到右进行运算,不同优先级的运算先高后低。

    运算符描述
    \转义符
    (), (?:), (?=), []圆括号和方括号
    *, +, ?, {n}, {n,}, {n,m}限定符
    ^, $, \任何元字符、任何字符定位点和序列
    |"或"操作字符具有高于替换运算符的优先级

在线练习

  • RegexOne-学习正则表达式
  • RegExr:学习,构建和测试RegEx
  • 在线正则表达式测试器和调试器

注意事项

  • 限定符 *+ 都是贪婪匹配,会匹配尽可能多的字符。
  • 在限定符的后面加上一个 ? 可以实现懒惰匹配,匹配尽可能少的字符。

参考资料

  • 正则表达式 – 教程 | 菜鸟教程
  • 正则表达式30分钟入门教程

版权声明:本文为「梦幻之心星」原创,依据 CC BY-NC-SA 4.0 许可证进行授权,转载请附上原文出处链接及本声明。


博客园地址:https://www.cnblogs.com/Sky-seeker微信公众号:关注微信公众号,获取即时推送3eefc8b3ab67cfded8b4683114d51e81.png


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/488562.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

非接触物体尺寸形态测量_检修人必备的测量常识

小编今天给大家分享一下测量的常识&#xff0c;咱们搞机械的一定要懂点测量知识&#xff01;一、测量器具的分类测量器具是一种具有固定形态、用以复现或提供一个或多个已知量值的器具。按用途的不同量具可分为以下几类&#xff1a;1. 单值量具只能体现一个单一量值的量具。可用…

生物战教训、生物安全问题以及未来监控军民两用生物技术扩散的手段

来源&#xff1a;美国空军国家安全研究学会研究报告2005年9月【知远导读】本篇推送编辑节选自美国空军国家安全研究学会2005年9月发布的一份题为《生物战教训、生物安全问题以及未来监控军民两用生物技术扩散的手段》的研究报告。该报告直接来源于作者海伦普凯特&#xff08;He…

如何避免字符串混淆加密_iOS-代码混淆加固方案

对于iOS来说&#xff0c;由于系统是封闭的&#xff0c;APP上架需要通过App Store&#xff0c;安全性来说相当高。但是对于大厂和知名APP而言&#xff0c;别人给的安全保障永远没有自己做的来得踏实。所以对于大厂、少部分企业级和金融支付类应用来说加固是相当重要的。下面是目…

DARPA计划在2021年开展多种新型武器概念研究

来源&#xff1a;中国指挥与控制学会“远射”项目DARPA计划于2021年投资2200万美元启动“远射”项目&#xff0c;演示一种空射武器系统。该系统由速度较慢的远程飞行器搭载至战区&#xff0c;在战区上空发射多枚空空导弹来实施作战。该武器可由现有战斗机外部挂载&#xff0c;或…

python算法实现源码_Python实现七个基本算法

1.顺序查找当数据存储在诸如列表的集合中时&#xff0c;我们说这些数据具有线性或顺序关系。 每个数据元素都存储在相对于其他数据元素的位置。 由于这些索引值是有序的&#xff0c;我们可以按顺序访问它们。 这个过程产实现的搜索即为顺序查找。顺序查找原理剖析&#xff1a;从…

python词云设计实例_python词云库wordcloud的使用方法与实例详解

wordcloud是优秀的词云展示第三方库一、基本使用 import jieba import wordcloud txt open("1.txt", "r", encodingutf-8).read() words jieba.lcut(txt) txt_1 " ".join(words) # print(txt1) w wordcloud.WordCloud(font_path"msyh.t…

细胞因子风暴与新冠肺炎

来源&#xff1a;陈辉科学网博客链接地址&#xff1a;http://blog.sciencenet.cn/blog-3426569-1219679.html 2020年2月15日下午&#xff0c;在国务院联发联控机制新闻发布会上&#xff0c;周琪院士介绍说“炎症因子风暴”[作者注释&#xff1a;即是细胞因子风暴&#xff08;Cy…

mysql 启动 修改密码_基础的启动/停止/重启/密码修改MySQL

如何启动/停止/重启MySQL一、启动方式1、使用 service 启动&#xff1a;service mysqld start2、使用 mysqld脚本启动&#xff1a;/etc/inint.d/mysqld start3、使用 safe_mysqld启动&#xff1a;safe_mysqld&二、停止1、使用 service 启动&#xff1a;service mysqldstop2…

预编译对象解决SQL注入问题

转载于:https://www.cnblogs.com/suanshun/p/6739454.html

eclipse中添加jar包后运行时提示noclassdeffounderror_一看你就懂,超详细 java 中的 ClassLoader 详解,耐心看~...

备注&#xff1a;本文篇幅比较长&#xff0c;但内容简单&#xff0c;大家不要恐慌&#xff0c;安静地耐心翻阅就是Class文件的认识我们都知道在Java中程序是运行在虚拟机中&#xff0c;我们平常用文本编辑器或者是IDE编写的程序都是.java格式的文件&#xff0c;这是最基础的源码…

寻找人机之间的中间地带-评述3本人机协作的书

来源&#xff1a; 混沌巡洋舰1 AI 错觉知其然&#xff0c;更要知其所以然&#xff0c;了解数据挖掘的算法的基础原理&#xff0c;可以在这个人工智能和大数据可能比工业革命更能改变人的一生的历史时期中&#xff0c;更有智慧的应用人工智能。AI错觉这本书18年在美国出版&#…

TypeError: HashUpdate fail

关于crypto的md5加密报错&#xff1a; 代码&#xff1a; var crypto require(crypto); var md5 crypto.createHash(md5); //crypto模块功能是加密并生成各种散列 var oldpass md5.update(oldpass).digest(hex); var newpass md5.update(newpass).digest(hex);如果md5.updat…

mysql 与gemfire的同步_(转)分布式缓存GemFire架构介绍

1什么是GemFireGemFire是一个位于应用集群和后端数据源之间的高性能、分布式的操作数据(operational data)管理基础架构。它提供了低延迟、高吞吐量的数据共享和事件分发。GemFire充分利用网络中的内存和磁盘资源&#xff0c;形成一个实时的数据网格(data fabric or grid)。Gem…

混合云关键技术能力和发展趋势

来源&#xff1a;IDC圈为满足成本、按需、隐私、合规、避免供应商锁定等目的&#xff0c;企业常常会采用多个公有云或私有云&#xff0c;这会造成基础设施资源池多样化&#xff0c;还要面临同时管理物理机、虚拟化等异构资源环境。多云管理由于面临同时管理物理机、虚拟化等异构…

文字竖着写怎么设置_微信置顶文字怎么设置 微信置顶文字的方法介绍|微信|置顶软硬件资讯川北在线...

阅读本文前&#xff0c;请您先点击上面的“蓝色字体”&#xff0c;再点击“关注”&#xff0c;这样您就可以继续免费收到文章了。每天都会有分享&#xff0c;都是免费订阅&#xff0c;请您放心关注。注&#xff1a;本文转载自网络&#xff0c;不代表本平台立场&#xff0c;仅供…

DOM查找元素的方法总结

按HTML查找&#xff1a;优点&#xff1a;范围可大可小&#xff0c;可设置条件&#xff1b;包括五种方式&#xff1a;1.按id查找&#xff1b;2.按标签名查找&#xff1a;var elems parent.getElementsByTagName();3.按name属性查找&#xff1a;要回传给服务器的元素需要name属性…

2019 NLP大全:论文、博客、教程、工程进展全梳理(长文预警)

来源&#xff1a;机器学习研究会订阅号在整个2019年&#xff0c;NLP领域都沉淀了哪些东西&#xff1f;有没有什么是你错过的&#xff1f;如果觉得自己梳理太费时&#xff0c;不妨看一下本文作者整理的结果。2019 年对自然语言处理&#xff08;NLP&#xff09;来说是令人印象深刻…

collection集合 地址_java集合系列(5)LinkedList

这篇文章开始介绍LinkList。他和ArrayList有一些相似&#xff0c;在上一篇文章讲解 ArrayList时&#xff0c;我们知道ArrayList是以数组实现&#xff0c;它的优势是查询性能高&#xff0c;劣势是按顺序增删性能差。如果在不确定元素数量的情况时&#xff0c;不建议使用ArrayLis…

meanshift算法 java_Meanshift,聚类算法

记得刚读研究生的时候&#xff0c;学习的第一个算法就是meanshift算法&#xff0c;所以一直记忆犹新&#xff0c;今天和大家分享一下Meanshift算法&#xff0c;如有错误&#xff0c;请在线交流。Mean Shift算法,一般是指一个迭代的步骤,即先算出当前点的偏移均值,移动该点到其偏…

python 数据分析 电信_实例 | 教你用Python写一个电信客户流失预测模型

原标题&#xff1a;实例 | 教你用Python写一个电信客户流失预测模型CDA数据分析师 出品 作者&#xff1a;真达、Mika 数据&#xff1a;真达 【导读】 今天教大家如何用Python写一个电信用户流失预测模型。公众号后台&#xff0c;回复关键字“电信”获取完整数据。 之前我们用Py…