正则表达式

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 配合使用。

 

https://www.debuggex.com/     

Debuggex是一个测试正则表达式的Web应用,它支持JavaScript、Python以及PCRE。

以上是关于正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

PHP 正则表达式总结

正则表达式

正则表达式

正则表达式“或“的使用

正则表达式 验证数字格式 非负数 小数点后保留两位 数字正则 double正则

JS正则表达式详解