前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >整理常用的正则表达式

整理常用的正则表达式

作者头像
用户5325874
发布2022-05-06 16:48:50
4810
发布2022-05-06 16:48:50
举报

写算法或者工作中,经常需要用到正则表达式,一般情况下,都是上网搜索,由于偶尔遇到需要自己解决的情况,因此做一些正则表达式的学习及积累。

基础篇

1、常用元字符\s 表示可以匹配任何空白字符串

\d 表示任意任意数字

\w 表示字母、数字、下划线

. 匹配除 "n" 之外的任何单个字符。要匹配包括 'n' 在内的任何字符,请使用像"(.|n)"的模式

2、常用语法+ 加号代表前面的符号出现一次(只包含原本加号前面的那个字符)或者多次。比如:runoo+b,可以匹配runoob, runoooob

* 星号代表前面的符号可以不出现,或者出现1次或者多次。比如:runoo*b,可以匹配runob, runoob, runooooob

? 问号代表前面的字符最多只能出现一次。比如colou?r可以匹配:color,colour

$ 匹配输入字符串的结尾位置

() 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。1表示重复 正则第一个圆括号内匹配到的内容,2表示重复正则第二个圆括号内匹配到的内容

代码语言:javascript
复制
 比如有以下正则:
([a-z])([a-z])\2\1
则可以匹配字符串abba
第一个圆括号内的正则匹配字符a,则在字符串最后\1这个位置必须是字符a,第二个括号匹配字符b,在倒数第二个位置\2必须是字符b
如果有嵌套的圆括号,顺序是按左括号的次序计算的

常用的正则表达式

1、字符串每个字符都是大写: ^[A-Z]+$

2、在字符串中寻找xyxy的子序列,x、y及xy、xy可以不连续: .*(.).*(.).*\1.*\2.*

3、字符串存在连续相同的字符: .*(.)\1.*

4、待补充...

补充

1、什么是正则表达式的贪婪与非贪婪匹配

代码语言:javascript
复制
如:String str="abcaxc";
Patter p="ab*c";
(1)贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配。如上面使用模式p匹配字符串str,结果就是匹配到:abcaxc(ab*c)。
(2)非贪婪匹配:就是匹配到结果就好,就少的匹配字符。如上面使用模式p匹配字符串str,结果就是匹配到:abc(ab*c)。

2.编程中如何区分两种模式

代码语言:javascript
复制
默认是贪婪模式;在量词后面直接加上一个问号?就是非贪婪模式。
量词:{m,n}:m到n个
*:任意多个
+:一个到多个
?:0或一个
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-01-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基础篇
  • 常用的正则表达式
  • 补充
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档