首页 > 其他分享 >正则表达式

正则表达式

时间:2022-10-05 12:34:29浏览次数:43  
标签:字符 匹配 正则表达式 等价 单词 字符串 换行符

单个字符

[aeiou]			匹配所有的元音(aeiou)字符
[^aeiou]		匹配所有的非元音字符
[a-z]			匹配a~z中所有字符
.			匹配除换行符(\n、\r)之外的任何单个字符,相等于 [^\n\r]
[\s\S]			匹配所有。\s 是匹配所有空白符,包括换行;\S 非空白符,不包括换行
\w			匹配字母、数字、下划线。等价于 [A-Za-z0-9_]
\d			匹配数字。等价于[0-9]

元字符

\d                      匹配数字字符
\D                      匹配非数字字符
\w                      匹配单词字符(英文、数字、下划线); 等价于[A-Za-z0-9_]
\W                      匹配非单词字符
\s                      匹配空白符(包括换行符、Tab)
\S                      匹配非空白字符
.                       匹配任何单个字符,它只能出现在方括号以外, 只有一个不能匹配的字符,也就是换行符(\n)
\b    			\b标注字符的边界(全字匹配);例如\bword\b匹配单词word
^ 			匹配行首
$ 			匹配行尾

非打印字符

\f			匹配一个换页符。等价于 \x0c 和 \cL
\n			匹配一个换行符。等价于 \x0a 和 \cJ
\r			匹配一个回车符。等价于 \x0d 和 \cM
\s			匹配任何空白字符
\S			匹配任何非空白字符
\t			匹配一个制表符
\v			匹配一个垂直制表符

限定符

*			匹配前面的子表达式零次或多次。
				例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}

+			匹配前面的子表达式一次或多次。
				例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。
				+ 等价于 {1,}

?			匹配前面的子表达式零次或一次。
				例如,"do(es)?" 可以匹配 "do"、"does" 中的 "does"、"doxy" 中的 "do" 。
				? 等价于 {0,1}

{n}			n 是一个非负整数。匹配确定的 n 次。
				例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配"food" 中的两个 o

{n,}			n 是一个非负整数。至少匹配n 次。
				例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配"foooood" 中 的所有 o
				'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'

{n,m}			m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。
				例如,"o{1,3}" 将匹配 "fooooood" 中的前三个 o。
				'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格

^ $符号

定位符用来描述字符串或单词的边界,^ 和 $ 分别指字符串的开始与结束,\b 描述单词的前或后边界,\B 表示非单词边界
^ 匹配字符串开头
$ 匹配字符串结尾
e.g. ^bucket$ 匹配单词bucket

^符号,在[]之内和之外是不同的。在[]内表示反向选择,在[]外表示定位在行首。

通用规则

1.正则表达式默认是贪婪模式,即尽可能的匹配更多字符,而要使用非贪婪模式,我们要在表达式后面加上 ?

2.贪婪/懒惰匹配
  <.+>  默认贪婪匹配“任意字符”
  <.+?> 懒惰匹配“任意字符”

3.或运算符
  (a|b)   匹配a或b
  (ab)|(cd)   匹配ab或cd

4.匹配字符串中的两个关键词:
    ^(?=.*word1)(?=.*word2).*$

标签:字符,匹配,正则表达式,等价,单词,字符串,换行符
From: https://www.cnblogs.com/nixinglvzhe/p/16755356.html

相关文章

  • 校验空格分隔的十六进制数的正则表达式
    项目中用到了类似:FFEE0102BBEE类型的十六进制数录入校验网络上没有找到相关的信息只有自己写一个来:方法一:^([\x0-\x255]{1,2}\\s)*([\x0-\x255]){1,2}$方法......
  • 正则表达式 匹配详细地址
    最近在做从细详地址中获取到需要的信息,首选考虑的是正则,但是详细地址种类太多,我只要“市、区(县)、街镇乡”三个行政级别的信息,且在中间行政级别名称缺失的情况下,可以获......
  • 就因为学会了这个正则表达式,我又快乐地摸了一天鱼
    也许你我素未谋面,但很可能相见恨晚,我是前端胖头鱼要开始做游戏了每当周围漂亮的小姐姐和别人打游戏“嗨”到飞起而我无法加入其中时,一股挫败感便会直冲我的天灵盖。为何我打......
  • 面向对象编程-正则表达式
    我相信不管是学什么语言,是哪个派路的对这几个字应该不会陌生吧,正则表达式终于让我给碰到了,之前看到了说实话那是真看不懂,一点头绪没有,猜我都猜不出是什么意思,今天终于把这个......
  • 模板变量替换(正则表达式)
    publicclassTemplateReplaceTest{publicstaticvoidmain(String[]args){Stringsql="INSERTINTO${tableName}"+"(${COLUMNS})......
  • 【正则】954- 正则表达式有几种字符匹配模式?
    最近再一次重温老姚大佬的《JavaScript正则表达式迷你书》,并将核心知识点整理一遍,方便复习。原书写得非常棒,建议看下原书啦。 地址:https://github.com/qdlaoyao/js-reg......
  • 正则表达式
    正则表达式符号描述?0个或1个,它就像是可选链操作符*0个或1个或多个+1个或多个......
  • 正则表达式中^的用法
    在使用正则表达式^的时候,有两层意思一限定开头放在规则的开头部分,表示限定开头/^a/表示以a开头 二(否)取反在中括号”[]”中被使用的话就是表示字符类的否定,在这个字......
  • JS 正则表达式
    普通字符普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。字符描述[ABC]匹配 [...] 中......
  • JavaScript——正则表达式
    正则表达式                                                         ......