正则表达式
Posted laphome
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式相关的知识,希望对你有一定的参考价值。
正则表达式:描述了一种字符串匹配的模式(pattern)
用途:1、字符串搜索算法(搜索,搜索并替换)
2、鉴定输入合法性
基本语法:
一个正则表达式通常被称为一个pattern,用来描述或匹配一系列符合某个句法规则的字符串,例如 Handel、Händel 和 Haendel 这三个字符串,都可以用H(a|ä|ae)ndel这个pattern来描述。
大部分正则表达式的形式都有如下的结构:
选择 (|表示,如 gray|grey 可以匹配gray或grey)
数量控制(某个字符后的数量控制符用来限定前面这个字符允许出现的次数,最常见的数量限定符包括+、?、*,不加数量限定符则代表前面的字符出现且仅出现一次。
加号+,代表前面的字符至少出现一次(1次或多次),如 goo+gle 可以匹配google, gooogle,gooooogle等;
问号?,代表前面的字符最多出现1次,1次或0次,例如colou?r可以匹配color或colour;
星号*,代表前边的字符可以不出现,也可以出现一次或多次,例如0*42,可以匹配42、042、0042、000042等;
花括号{n},其中n是一个非负整数,代表前面的字符精确出现了n次;
花括号{n,},其中n是一个非负整数,代表前面的字符至少出现了n次;
花括号{n, m},其中n、m是非负整数,且n <= m,代表前面的字符至少出现了n次,至多出现了m次)
匹配(圆括号()用来定义操作符的范围和优先度,例如 gr(a|e)y等价于gray|grey,grand?father匹配grand和grandfather,H(ae?|ä)ndel和H(a|ä|ae)ndel是等价的)
元字符:https://www.runoob.com/regexp/regexp-metachar.html
简单实例:科学计数法正则表示:
-?d(.d+)?[Ee]-?d+
几款正则表达式在线编辑网站
https://jex.im/regulex/ Regulex是一个javascript正则表达式可视化工具,由纯JavaScript实现,源码托管在Github上。
https://rubular.com/ Rubular是一个Ruby正则表达式编辑器,由Michael Lovitt开发实现。
http://www.pyregex.com/ Pyregex是一个开源的Python正则表达式编辑器,开源协议为GNU General Public License v2,源码托管在Github上。
https://regexper.com/ Regexper是由Jeff Avallone开发的一款JavaScript正则表达式可视化工具,源码托管在Github上。它能够让正则表达式字符串以 Railroad 形式图形化,便于阅读和理解。同时推荐一款 JavaScript 正则在线测试工具——Regexpal,可以和 Regexper 配合使用。
Debuggex是一个测试正则表达式的Web应用,它支持JavaScript、Python以及PCRE。
以上是关于正则表达式的主要内容,如果未能解决你的问题,请参考以下文章