正则表达式

简介:

正则表达式中的元字符:

基本元字符集:^,$,.,*,[],[^],\<,\>

扩展元字符集:?,+,{,},|,(,) 


()标记一个子Reg表达式的开始和结束

[]标记任意一个字符

{}限定符,标记前一个字符重复次数

| 用在()中是字符串或,而不是字符或


*?:*? 重复任意次,但尽可能少重复,最小匹配,懒惰算法;(*最大匹配,贪婪算法) 

\将元字符转为普通字符(如\[),或将普通字符变为转义字符(如\t)

^匹配字符串的开始位置,如果RegExp对象设置了多行模式,那么^还将匹配所有\n或\t之后的位置(首行)

$匹配字符串的位置结束,如果RegExp对象设置了多行模式,那么$还将匹配所有\n或\t之前的位置(行尾)

*将该字符前面正则表达式中的紧邻字符(可以是转义字符)重复0次或多次(如“ab*”可以匹配“a”,"ab","abb..";"a\d*"可以匹配很多)

+将该字符前面正则表达式中的紧邻字符(可以是转义字符)重复1次或多次

?将该字符前面正则表达式中的紧邻字符(可以是转义字符)重复0次或1次

{n}将该字符前面正则表达式中的紧邻字符(可以是转义字符)重复n次

{n,}将该字符前面正则表达式中的紧邻字符(可以是转义字符)重复至少n次

{n,m}将该字符前面正则表达式中的紧邻字符(可以是转义字符)重复至少n次,最多m次

.匹配\n之外的任何字符(如果匹配所有字符可以使用[.\n])

(pattern)当一个正则表达式Reg中含()时,如果匹配了该Reg,那么将只返回与()匹配的部分。"industr(ies)"如果匹配了那么将只返回ies

(?:pattern)当一个正则表达式Reg中含(?:)时,如果匹配了该Reg,那么将返回整个与Reg匹配的部分(这个常与|合用)如"industr(?:y|ies)"将匹


配"industry"或"industries"

(?=pattern)当一个正则表达式Reg中含(?=)时,如果匹配了该Reg,那么将只返回()只外匹配的部分。如"windows (2000|NT)"如果匹配了将只返回"windows"

(?!pattern)负向匹配,与(?=pattern)相反,匹配pattern不包含的字符,并且()的内容不返回。如"windows (2000|NT)",不能比配windows 2000"中的


windows但能匹配windows 3.1中的windows,并只返回windows

|Reg中的字符串或,常用在()中,如(abc|bcd)匹配abc或bcd

[xyz]字符集,匹配[]包含的任意一个字符

[^xyz]负向匹配,匹配[]不包含的任意一个字符

-字符范围




\b匹配一个单词边界,即单词与空格间的位置。如'er\b'能匹配'never is'中的'er'但不能匹配'verb '中的'er'

\B匹配一个非单词边界,与上述相反,能匹配'verb '中的'er',但不能匹配'never is'中的'er'

\cx匹配一个由x指明的控制字符,如\cM将匹配回车

\d配置一个数字字符,等价于[0-9]

\D配置一个非数字字符,等价于[^0-9]

\f匹配一个换页符

\n匹配一个换行符

\r匹配一个回车符

\t匹配一个制表符

\v匹配一个垂直制表符

\s匹配任意一个空白字符,等价于[\f\n\r\t\v]

\S匹配任意一个非空白字符,等价于[^\f\n\r\t\v]

\w匹配数字字母或下划线,等价于[0-9a-zA-Z_]

\W匹配非数字字母或下划线,等价于[^0-9a-zA-Z_]

\num            重复第num个()标记的reg表达式



本文转自 a_liujin 51CTO博客,原文链接:http://blog.51cto.com/a1liujin/1701891,如需转载请自行联系原作者

相关文章
|
小程序
微信小程序实现上拉加载分页列表的性能优化
微信小程序实现上拉加载分页列表的性能优化
|
NoSQL 数据可视化 MongoDB
Mac安装MongoDB
Mac安装MongoDB,其他同理,博主的设备上 macOS 13和 MongoDB 5.0
437 0
|
弹性计算 人工智能 PyTorch
GPU实验室-在云上部署ChatGLM2-6B大模型
ChatGLB2-6B大模型:由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。截至2023年7月,在C-Eval中,排名靠前。Pytorch:一个开源的Python机器学习库,基于Torch,底层由C++实现,应用于人工智能领域,如计算机视觉和自然语言处理。它主要由Meta Platforms的人工智能研究团队开发。著名的用途有:特斯拉自动驾驶,Uber最初发起而现属Linux基金会项目的概率编程软件Pyro,Lightning。
|
机器学习/深度学习 存储 人工智能
数据驱动决策:技术背后的智慧
在当今信息爆炸的时代,数据驱动的决策正在成为各行各业的关键。本文探讨了数据技术如何在现代商业环境中发挥作用,以及如何利用数据分析来优化决策过程,从而提高效率和准确性。
341 2
|
开发工具 Python
【SLS开源兼容系列】使用ES SDK 访问SLS
本文介绍如何用es sdk访问sls
310 0
|
小程序 前端开发 JavaScript
微信小程序实现抽奖大转盘
微信小程序实现抽奖大转盘
995 0
|
存储 缓存 API
Kratos微服务框架实现权鉴 - Zanzibar
用户的权限管理对每个项目来说都至关重要。不同的业务场景决定了不同的权限管理需求,不同的技术栈也有不同的解决方案。如果你面对一个非常复杂的业务,需要实现极为灵活的权限配置,并且同时对接多个服务怎么办呢?谷歌的一致性全球授权系统Zanzibar可以帮到你。
893 0
Kratos微服务框架实现权鉴 - Zanzibar
|
人工智能 编解码 算法
社区供稿 | 视频目标检测(IJCAI 2023) 流感知优化 DAMO-StreamNet 开源
传统视频目标检测(Video Object Detection, VOD)任务以一段视频作为输入,利用视频的时序信息进行目标检测,并最终输出每一帧视频帧的检测结果。
|
XML 存储 前端开发
手把手教你防御 CSRF 攻击
之前已经写了两篇关于 CSRF 的文章,其中昨天的一篇手把手教你实现一次 CSRF 攻击 留下了防御的悬念,而今天这篇就是教导如何防御 CSRF 攻击
|
存储 弹性计算 数据库
在沙特,阿里云和沙特电信携手提供云计算服务
在沙特,阿里云和沙特电信携手提供云计算服务
786 0