正则表达式符号含义

简介: 正则表达式符号含义

正则表达式

1.元字符

代码 说明
. 匹配除换行符意外的任意字节
\w 匹配字母或者下划线或者汉字
\W 查找非单词字符。
\s 匹配任意的空白符
\S 查找非空白字符。
\d 匹配数字
\D 查找非数字字符。
\b 匹配的单词的开始或结束
\B 匹配非单词边界。
^ 匹配字符串的开始(在集合字符里面[^a]表示非的意思)
$ 匹配字符串的结束


2.放义字符


代码/语法 说明
\W 匹配任意不是字母,数字,下划线,汉字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非数字的字符
\B 匹配不是单词开头或结束的位置
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou这几个字母以外的任意字符


3.限定字符(量词)

代码/语法 说明
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次


n+ 匹配任何包含至少一个 n 的字符串。
n* 匹配任何包含零个或多个 n 的字符串。
n? 匹配任何包含零个或一个 n 的字符串。
n{X} 匹配包含 X 个 n 的序列的字符串。


n{X,Y} 匹配包含 X 或 Y 个 n 的序列的字符串。
n{X,} 匹配包含至少 X 个 n 的序列的字符串。
n$ 匹配任何结尾为 n 的字符串。
^n 匹配任何开头为 n 的字符串。
?=n 匹配任何其后紧接指定字符串 n 的字符串。
?!n 匹配任何其后没有紧接指定字符串 n 的字符串



4.转义字符


如元字符 . * \ 需要转换为. * \


5.字符分歧

字符分枝多用于满足不同情况的选择,用“|”将不同的条件分割开来,比如有些固定电话区号有三位,有些有四位,这个时候可以采用字符分枝


例如:\d{3}-\d{8}|\d{4}-\d{8} 可以匹配两种不同长度区号的固定电话

6.其他字符


代码/语法 说明
\a 报警字符(打印它的效果是电脑嘀一声)
\b 通常是单词分界位置,但如果在字符类里使用代表退格
\t 制表符,Tab
\r 回车
\v 竖向制表符
\f 换页符


\n 换行符
\e Escape
\0nn ASCII代码中八进制代码为nn的字符
\xnn ASCII代码中十六进制代码为nn的字符
\unnnn Unicode代码中十六进制代码为nnnn的字符
\cN ASCII控制字符。比如\cC代表Ctrl+C
\A 字符串开头(类似^,但不受处理多行选项的影响)
\Z 字符串结尾或行尾(不受处理多行选项的影响)
\z 字符串结尾(类似$,但不受处理多行选项的影响)
\G 当前搜索的开头
\p{name} Unicode中命名为name的字符类,例如\p{IsGreek}
(?>exp) 贪婪子表达式


(?-exp) 平衡组
(?im-nsx:exp) 在子表达式exp中改变处理选项
(?im-nsx) 为表达式后面的部分改变处理选项
(?(exp)yes|no) 把exp当作零宽正向先行断言,如果在这个位置能匹配,使用yes作为此组的表达式;否则使用no
(?(exp)yes) 同上,只是使用空表达式作为no
(?(name)yes|no) 如果命名为name的组捕获到了内容,使用yes作为表达式;否则使用no
(?(name)yes) 同上,只是使用空表达式作为no


7.常用的实用正则表达式整理

只能输入数字:“1*$”。


只能输入n位的数字:"^“d{n}$”。


只能输入至少n位的数字:"^“d{n,}$”。


只能输入m~n位的数字:。"^“d{m,n}$”


只能输入零和非零开头的数字:“^(0|[1-9][0-9]*)$”。


只能输入有两位小数的正实数:“2+(.[0-9]{2})?$”。


只能输入有1~3位小数的正实数:“3+(.[0-9]{1,3})?$”。


只能输入非零的正整数:“^”+?[1-9][0-9]*$"。


只能输入非零的负整数:“^”-[1-9][]0-9"*$。


只能输入长度为3的字符:“^.{3}$”。


只能输入由26个英文字母组成的字符串:“4+$”。


只能输入由26个大写英文字母组成的字符串:“5+$”。


只能输入由26个小写英文字母组成的字符串:“6+$”。


只能输入由数字和26个英文字母组成的字符串:“7+$”。


只能输入由数字、26个英文字母或者下划线组成的字符串:"^“w+$”。


验证用户密码:"8"w{5,17}$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。


验证是否含有^%&’,;=?KaTeX parse error: Expected group after '^' at position 9: ""等字符:"[^̲%&’,;=?“x22]+”。


只能输入汉字:“9{0,}$”


验证Email地址:"^"w+([-+.]“w+)@"w+([-.]"w+)”."w+([-.]“w+)*$”。


验证InternetURL:"^http://([“w-]+”.)+["w-]+(/[“w-./?%&=]*)?$”。


验证电话号码:“^(”("d{3,4}-)|"d{3.4}-)?"d{7,8}$"正确格式为:“XXX-XXXXXXX”、“XXXX- XXXXXXXX”、“XXX-XXXXXXX”、“XXX-XXXXXXXX”、“XXXXXXX"和"XXXXXXXX”。


验证身份证号(15位或18位数字):"^"d{15}|“d{18}$”。


验证一年的12个月:"^(0?[1-9]|1[0-2])$"正确格式为:“01"~"09"和"1"~"12”。


验证一个月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正确格式为;“01"~"09"和"1"~"31”。


利用正则表达式限制网页表单里的文本框输入内容:


用正则表达式限制只能输入中文:οnkeyup="value=value.replace(/[^"u4E00-“u9FA5] /g,’’)” onbeforepaste="clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^"u4E00-“u9FA5]/g,’’))”


用正则表达式限制只能输入全角字符: οnkeyup="value=value.replace(/[^"uFF00-“uFFFF]/g,’’)” onbeforepaste="clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^"uFF00-“uFFFF]/g,’’))”


用正则表达式限制只能输入数字:οnkeyup="value=value.replace(/[^"d]/g,’’) "onbeforepaste="clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^“d]/g,’’))”


用正则表达式限制只能输入数字和英文:οnkeyup="value=value.replace(/["W]/g,’’) "onbeforepaste="clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^“d]/g,’’))”


得用正则表达式从URL地址中提取文件名的javascript程序,如下结果为page1


  1. 0-9 ↩︎
  2. 0-9 ↩︎
  3. 0-9 ↩︎
  4. A-Za-z ↩︎
  5. A-Z ↩︎
  6. a-z ↩︎
  7. A-Za-z0-9 ↩︎
  8. a-zA-Z ↩︎
  9. "u4e00-"u9fa5 ↩︎




目录
相关文章
|
2月前
|
机器学习/深度学习 前端开发 Windows
【夯实技术基本功】「底层技术原理体系」全方位带你认识和透彻领悟正则表达式(Regular Expression)的开发手册(正则符号深入解析 )
【夯实技术基本功】「底层技术原理体系」全方位带你认识和透彻领悟正则表达式(Regular Expression)的开发手册(正则符号深入解析 )
32 0
|
24天前
|
JavaScript 前端开发
用JavaScript正则表达式匹配对应字符串高亮显示,并过滤掉空格、<、>等HTML节点符号
用JavaScript正则表达式匹配对应字符串高亮显示,并过滤掉空格、<、>等HTML节点符号
|
10月前
|
JavaScript 前端开发 索引
javascript截取两个符号之间的字符串(2):lastIndexOf匹配和正则表达式匹配
javascript截取两个符号之间的字符串(2):lastIndexOf匹配和正则表达式匹配
276 0
|
6月前
|
Java Go PHP
正则表达式符号汇总
正则表达式符号汇总
|
12月前
|
监控 Python
一日一技:批量转义正则表达式中的特殊符号
一日一技:批量转义正则表达式中的特殊符号
67 0
正则表达式去除空格、符号,只保留中文、英文、数字
正则表达式去除空格、符号,只保留中文、英文、数字
650 0
|
机器学习/深度学习
【关于正则表达式的特殊符号的处理】之前自己在提取一个表达式一直提取不到,后来解决了,记录下知识点
1.开始的表达式:"drugLicenseCompanyperson":[{"pk":"(.*?)" 2.修改后的表达式:"drugLicenseCompanyperson":\[\{"pk":"(.*?)"
C#编程:正则表达式符号说明-7
C#编程:正则表达式符号说明-7
C#编程:正则表达式符号说明
C#编程:正则表达式符号说明
156 0