首页技术正则表达式函数,20个常用的正则表达式

正则表达式函数,20个常用的正则表达式

编程之家2026-06-15851次浏览

大家好,正则表达式函数相信很多的网友都不是很明白,包括20个常用的正则表达式也是一样,不过没有关系,接下来就来为大家分享关于正则表达式函数和20个常用的正则表达式的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

正则表达式函数,20个常用的正则表达式

PHP正则表达式的使用技巧

PHP正则表达式的定义

用于描述字符排列和匹配模式的一种语法规则它主要用于字符串的模式分割匹配查找及替换操作

PHP中的正则函数

PHP中有两套正则函数两者功能差不多分别为

一套是由PCRE(Perl Compatible Regular Expression)库提供的使用 preg_为前缀命名的函数

一套由POSIX(Portable Operating System Interface of Unix)扩展提供的使用以 ereg_为前缀命名的函数(POSIX的正则函数库自PHP以后就不在推荐使用从PHP以后就将被移除)

正则表达式函数,20个常用的正则表达式

由于POSIX正则即将推出历史舞台并且PCRE和perl的形式差不多更利于我们在perl和php之间切换所以这里重点介绍PCRE正则的使用

PCRE正则表达式

PCRE全称为Perl Compatible Regular Expression意思是Perl兼容正则表达式

在PCRE中通常将模式表达式(即正则表达式)包含在两个反斜线/之间如/apple/

正则中重要的几个概念有元字符转义模式单元(重复)反义引用和断言这些概念都可以在文章[ ]中轻松的理解和掌握

常用的元字符(Meta character)

正则表达式函数,20个常用的正则表达式

元字符说明

/A匹配字符串串首的原子

/Z匹配字符串串尾的原子

/b匹配单词的边界//bis/匹配头为is的字符串/is/b/匹配尾为is的字符串//bis/b/定界

/B匹配除单词边界之外的任意字符//Bis/匹配单词 This中的 is

/d匹配一个数字等价于[ ]

/D匹配除数字以外任何一个字符等价于[^ ]

/w匹配一个英文字母数字或下划线等价于[ a zA Z_]

/W匹配除英文字母数字和下划线以外任何一个字符等价于[^ a zA Z_]

/s匹配一个空白字符等价于[/f/t/v]

/S匹配除空白字符以外任何一个字符等价于[^/f/t/v]

/f匹配一个换页符等价于/x c或/cL

匹配一个换行符等价于/x a或/cJ

匹配一个回车符等价于/x d或/cM

/t匹配一个制表符等价于/x/或/cl

/v匹配一个垂直制表符等价于/x b或/ck

/oNN匹配一个八进制数字

/xNN匹配一个十六进制数字

/cC匹配一个控制字符

模式修正符(Pattern Modifiers)

模式修正符在忽略大小写匹配多行中使用特别多掌握了这一个修正符往往能解决我们遇到的很多问题

i-可同时匹配大小写字母

M-将字符串视为多行

S-将字符串视为单行换行符做普通字符看待使匹配任何字符

X-模式中的空白忽略不计

U-匹配到最近的字符串

e-将替换的字符串作为表达使用

格式/apple/i匹配 apple或 Apple等忽略大小写/i

PCRE的模式单元

//提取第一位的属性

/^/d{}([/W])/d{}///d{}$匹配//等字符串但上述正则表达式不匹配/的格式这是因为模式 [/W]的结果/已经被存储下个位置/引用时其匹配模式也是字符/

当不需要存储匹配结果时使用非存储模式单元(?)

例如/(?:a|b|c)(D|E|F)// g/将匹配 aEEg在一些正则表达式中使用非存储模式单元是必要的否则需要改变其后引用的顺序上例还可以写成/(a|b|c)(C|E|F)/ g/

PCRE正则表达式函数

以下为引用的内容

preg_match()和preg_match_all() preg_quote() preg_split() preg_grep() preg_replace()

函数的具体使用我们可以通过PHP手册来找到下面分享一些平时积累的正则表达式

匹配action属性

以下为引用的内容

$str=;$match=; preg_match_all(//s+action=/(?!)(*?)//s/$str$match); print_r($match);

在正则中使用回调函数

以下为引用的内容

/*** replace some string by callback function**/ function callback_replace(){$url=;$str=;$str= preg_replace(/(?<=/saction=/)(?!)(*?)(?=//s)/e search(/$url//)$str); echo$str;} function search($url$match){ return$url/$match;}

带断言的正则匹配

以下为引用的内容

$match=;$str= xxxxxx cn bold font paragraph text

; preg_match_all(/(?<=<(/w{})>)*(?=<///>)/$str$match); echo匹配没有属性的HTML标签中的内容; print_r($match);

替换HTML源码中的地址

以下为引用的内容

$form_= preg_replace(/(?<=/saction=/|/ssrc=/|/s)(?!|javascript)(*?)(?=//s)/e add_url(/$url////)$form_);

lishixinzhi/Article/program/PHP/201311/21027

正则表达式 「函数封装案例直接拿来用」

什么是正则表达式

我们平时打游戏需要先注册账号,注册不是随意的,而是按照一定的规则,否则就无法注册成功。那么这个规则的判断就是通过正则表达式来判断的。

其他语言也会使用正则表达式,我们现在主要是利用JavaScript正则表达式完成表单验证。

知道了什么是正则表达式,那么聊聊如何使用:

正则表达式在js中的使用

正则表达式的创建(两种方式):

方式一:通过调用RegExp对象的构造函数创建

方式二:利用字面量创建正则表达式【重点记忆,常用】

test()是测试正则对象方法,用于检测字符串是否符合该规则,该对象会返回 true或 false,他的参数是需要测试的字符串。

正则表达式中的特殊字符

正则表达式的组成

定义:一个正则表达式可以由简单的字符构成,比如/abc/,也可以是简单和特殊字符的组合,比如/ab*c/。其中特殊字符也被称为元字符,在正则表达式中是具有特殊意义的专用符号,如 ^、$、+等。

边界符

有两个 ^和$: ^代表必须以某个字符串开头;$代表必须以某个字符串结尾;

举个栗子:理解一下^和$的用法:

[]方括号:表示有一系列字符可供选择,只要匹配其中一个就可以了;

举个栗子:

量词符用来设定某个模式出现的次数。

接下来就可以写案例了:

功能需求:

1.如果用户名输入合法,则后面提示信息为:用户名合法,并且颜色为绿色

2.如果用户名输入不合法,则后面提示信息为:用户名不符合规范,并且颜色为红色

分析:

1.用户名只能为英文字母,数字,下划线或者短横线组成,并且用户名长度为6~16位.

2.首先准备好这种正则表达式模式/$[a-zA-Z0-9-_]{6,16}^/

3.当表单失去焦点就开始验证.

4.如果符合正则规范,则让后面的span标签添加 right类.

5.如果不符合正则规范,则让后面的span标签添加 wrong类.

CSS:

HTML JS:

1.大括号量词符.里面表示重复次数

2.中括号字符集合。匹配方括号中的任意字符.

3.小括号表示优先级【有小括号的先算】

预定义类指的是某些常见模式的简写方式.

表单验证案例:

replace()方法可以实现替换字符串操作,用来替换的参数可以是一个字符串或是一个正则表达式。

replace第一个参数正则后跟 i g gi分别代表什么?看案例:

案例:过滤敏感词汇

tips:定义正则就用字面量的形式定义,正则表达式也不用自己写,可以直接在网上找到,找到以后按需求改即可,另外在过滤敏感词中,特别注意 i(不区分大小写) g(全局中查找) gi(不区分,而且全局中查找)的用法;

如何在sql语句中使用正则表达式

sqlserver中,主要有regexp_like,regexp_replace,regexp_substr,regexp_instr四个正则表达式函数。

1、regexp_like:

regexp_like(x,pattern[,match_option]),查看x是否与pattern相匹配,该函数还可以提供一个可选的参数match_option字符串说明默认的匹配选项。match_option的取值如下:

'c'说明在进行匹配时区分大小写(缺省值);

'i'说明在进行匹配时不区分大小写;

'n'(.)点号能表示所有单个字符,包括换行(俺还不知道什么地方有用到换行.只知道sql里面可以用chr(10)表示换行、

'm'字符串存在换行的时候当作多行处理.这样$就可匹配每行的结尾.不然的话$只匹配字符串最后的位置、

示例:

select* from emp where regexp_like(ename,'^a[a-z]*n$');

可以查找ename中以a开头以n结尾的行.例如ename为arwen或arwin或anden.但Arwen不能被匹配.因为默认是区分大小写.如果是

select* from emp where regexp_like(ename,'^a[a-z]*n$','i')

则可以查找ename为Arwen的行记录。

2、regexp_instr:

REGEXP_INSTR(x,pattern[,start[,occurrence[,return_option[, match_option]]]])用于在x中查找pattern。返回pattern在x中出现的位置。匹配位置从1开始。可以参考字符串函数 INSTR(),参数相关:

'start'开始查找的位置;

'occurrence'说明应该返回第几次出现pattern的位置;

'return_option'说明应该返回什么整数。若该参数为0,则说明要返回的整数是x中的一个字符的位置;若该参数为非0的整数,则说明要返回的整数为x中出现在pattern之后的字符的位置;

'match_option'修改默认的匹配设置.与regexp_like里面的相同.

示例:

DECLARE

V_RESULT INTEGER;

BEGIN

SELECT REGEXP_INSTR('hello world','o',1,1,0) INTO V_RESULT

FROM DUAL;

DBMS_OUTPUT.PUT_LINE(V_RESULT);

END;

结果为5,即字母o第一个次出现的位置。

如果regexp_instr('hello world','o',1,1,n)其中n为除0之外的整数。比如1,3。则结果为6.表示第一次出现字母o的后面一个字符的位置。

如果regexp_instr('hello world','o',1,2,0)则结果为9.表示第二次出现字母o的位置.

3、regexp_replace:

REGEXP_REPLACE(x,pattern[,replace_string[,start[,occurrence[, match_option]]]])用于在x中查找pattern,并将其替换为replae_string。可以参考字符串函数 REPLACE(),参数同REGEXP_INSTR函数

示例:

DECLARE

V_RESULT varchar2(90);

BEGIN

SELECT REGEXP_REPLACE('hello world','o','x',1,1) INTO V_RESULT

FROM DUAL;

DBMS_OUTPUT.PUT_LINE(V_RESULT);

END;

结果为hellx world.

如果REGEXP_REPLACE('hello world','o','x'),则结果为hellx wxrld.

如果 REGEXP_REPLACE('hello world','o','x',1,2)则结果为hello wxrld.

4、regexp_substr:

REGEXP_SUBSTR(x,pattern[,start[,occurrence[, match_option]]])用于在x中查找pattern并返回。可以参考字符串函数 SUBSTR(),参数同REGEXP_INSTR函数.

例如:

DECLARE

V_RESULT VARCHAR2(255);

BEGIN

SELECT REGEXP_SUBSTR('hello world','l{2}') INTO V_RESULT

FROM DUAL;

DBMS_OUTPUT.PUT_LINE(V_RESULT);

END;

结果为ll

查询到匹配的字符串才返回匹配的字符.没查到就返回空。

文章到此结束,如果本次分享的正则表达式函数和20个常用的正则表达式的问题解决了您的问题,那么我们由衷的感到高兴!

c语言经典教材(数据结构c语言版)lol拉克丝,熊猫娃娃拉克丝