正则表达式相关汇总
几个重要的: . [] *包括+ 和? {n} \d \w
. //表示除\n之外的任意的单个字符
a.b //a和b之间必须有一个字符,出了回车\n 之外
a,b
b..g //b和g之间必须有两个字符,除了\n以外
baxg
baag
=================================================================
[] 字符的筛选
a[axj]b //a和b之间只能有一个字符,这个字符只能在a到j之间的任一个
aab √
axb ×
ajb √
abb √
axb ×
a[0123456789]b //a和b之间只恩只能出现0到9之间的一个字符
a10b
a1b
a0b
axb
a[0123456789abcdfe....z]b
a[0-9]b
a[a-z]b
a[0-9a-zA-Z]b //0到9,a到z,A到Z,之间任意一个字符
a1b
axb
aAb
非: ^ 取反
a[^0-9]b 表示a与b之间只能出现除了0123456789之外的任意单个字符。
a[^0-9a-z]b
x[aeiou]y
=====================================================
| 表示或的意思
z|food 由于| 的优先级非常低,所以这个表达式可以匹配 z 或 food
这个表达式不匹配zood
(z|f)ood 才表示zood或者food
z
food
zood
===========================================
()改变运算的优先级。
提取组。
=======================================
* 限定符,表示前面的表达式出现0次或多次。
zoo* // o可以出现零次或多次 zo zooooo
a.*b // .可以出现零次或多次 aaddddb匹配
.
[]
|
()
*
================================================
+ 限定符,表示前边的表达式必须出现1次或者多次。至少得出现1次。
a.+b //+表示.必出出现一次货多次,不能出现零次
==================================================
? 限定符,表示前边的表达式必须出现0次或者1次。
a.?b //?表示.出现次数要么零次,要么一次
ab
axb
agdsafdsafdab
? 的另外一个作用就是“终止贪婪模式”。正则表达式默认是贪婪模式。
======================================================================
a[0-9]+b
axb ×
ab ×
a0b √
a00b √
a09b √
a99999999999999999999b √
==========================其他限定符=====================
{n} 限定符,限定前边的表达式必须出现n次。
a[0-9]{10}b 必须出现10次0到9
a1234567899b √
======================
{n,} 限定符,限定前边的表达式至少出现n次,最多不限次数
1[a-z]{3,}2
1axffdsafdsafdasfdsafdsafdsafdsfdsafsdfdsfdsfdsa2
========================================
{n,m} 限定符,限定前边的表达式至少出现n次,最多出现m次。
a[0-9]{3,7}b
a0000000b
===========================================
.
[]
[^]
|
()
*
+
?
{n}
{n,}
{n,m}
=================================================
^表示的是字符串的开头,$表示字符串的结尾。
^ 和 $ 就表示的是字符串的两个特征。一个表示开头的特征,一个表示结尾的特征
abcxyz
^abc.*xyz$
^abcdefg$
^abcdefg
acxbc
abcfdsafdsafdsafdasfdasfdasfds
fdsfdsfxyz
xyz$
===========================================
a[0-9]b
a\db
方法:\d等价于[0-9] \D 等价于[^0-9] digital:数字
方法:\s 表示所有那些空白符,不可见字符 \S 就是除了\s以外的所有字符。
a\s*b
ab
a
=================================================
\w [0-9a-zA-Z_]
\W 就是除了\w之外的所有其他字符。word:表示单词字符。
\b表示单词的边界。 (断言:只判断,不匹配。)
============================================
下面这几种方式就可以表示任意的单个字符出现在ab之间。
a[\s\S]b
a[\d\D]b
a[\w\W]b