백엔드 개발 PHP 튜토리얼 php正则表达式的介绍_PHP教程

php正则表达式的介绍_PHP教程

Jul 13, 2016 am 10:50 AM
php 기본 소개하다 오른쪽 지도 시간 정기적인 용법 ~의 바라보다 표현

今天看一个教程中有写了一些正则表达式用法,里面主要讲到了正则对字符的分割、匹配、查找、替换及一些入门知识与常用实例,所以整理过来与大家分享。

1.正则表达式的介绍和作用。

01.什么是正则表达式?

正则表达式(英语:Regular Expression、regex或regexp,缩写为RE),也译为正规表示法、常规表示法,在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操作。

规则语法

02.主要作用:分割、匹配、查找、替换。

表达式 匹配

/^s*$/

匹配空行。

/d{2}-d{5}/

验证由两位数字、一个连字符再加 5 位数字组成的 ID 号。

/]*)?>[sS]*/

匹配 HTML 标记。


2.PHP中两个常用的正则函数。

preg_match 正则函数,以perl预言为基础。(比较效率,需要自定义一个开始结束符。)
ereg 正则函数,以POSIX为基础(Uniox、Script)。

3.正则表达式中包括的元素。

01.原子(普通字符:a-z A-Z 0-9、原子表、转义字符)。
02.原子符(有特殊功能的字符)。
03.模式修正符(系统内置部分模块,类似函数)。


4.正则表达式中的“原子”。

01.a-z A-Z _ 0-9   //最常见的字符。
02.(abc) (skd)   //用括号包含起来的单元符号。
03.[abcs] [^abd]   //贪婪匹配,用方括号包含的源自表,原子表中^代表排除或者相反内容。

04.转义字符(区分大小写)
d 包含所有数字 == [0-9]。
D 非包含所有数字 == [^0-9]。

w 包含所有英文字符 == [a-zA-Z_0-9]。
W 非包含所有英文字符&数字,用来匹配特殊符号 == [^a-zA-Z_0-9]。
s 包含空白区域如回车、换行、分页符 == [fnr]。

元字符

*  匹配前一个内容的0次1次或多次
.  匹配内容的0次1次或多次,但不包含回车换行
+ 匹配前一个内容的1次或多次
?匹配前一个内容的0次或1次
|  选择匹配类似PHP中的| (因为这个运算符合是弱类型导致前面最为整体匹配)
^  匹配字符串首部内容
$  匹配字符串尾部内容
b 匹配单词边界,边界可以是空格或者特殊符合
B 匹配除带单词边界意外内容
{m} 匹配前一个内容的重复次数为M次
{m,} 匹配前一个内容的重复次数大于等于M次
{m,n} 匹配前一个内容的重复次数M次到N次
( ) 合并整体匹配,并放入内存,可使用1 2…依次获取

实例:

 代码如下 复制代码

$mode = "#test#";   //这里可以用以上原子表进行匹配。
$str = "sdfsstestdf";

if (preg_match($mode, $str, $end)) {   //mode正则模块、str正则内容、end正则结果,以数组输出。
 echo "匹配成功" . $end[0];
} else {
 echo "匹配失败";
}
?>

常用正则

* 1、 ^S+[a-z A-Z]$ 不能为空 不能有空格 只能是英文字母
* 2、 S{6,} 不能为空 六位以上
* 3、 ^d+$ 不能有空格 不能非数字
* 4、 (.*)(.jpg|.bmp)$ 只能是jpg和bmp格式
* 5、 ^d{4}-d{1,2}-d{1,2}$ 只能是2004-10-22格式
* 6、 ^0$ 至少选一项
* 7、 ^0{2,}$ 至少选两项
* 8、 ^[s|S]{20,}$ 不能为空 二十字以上
* 9、 ^+?[a-z0-9](([-+.]|[_]+)?[a-z0-9]+)*@([a-z0-9]+(.|-))+[a-z]{2,6}$邮件
* 10、 w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*([,;]s*w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*)* 输入多个地址用逗号或空格分隔邮件
* 11、 ^(([0-9]+))?[0-9]{7,8}$电话号码7位或8位或前面有区号例如(022)87341628
* 12、 ^[a-z A-Z 0-9 _]+@[a-z A-Z 0-9 _]+(.[a-z A-Z 0-9 _]+)+(,[a-z A-Z 0-9 _]+@[a-z A-Z
0-9 _]+(.[a-z A-Z 0-9 _]+)+)*$
* 只能是字母、数字、下划线;必须有@和.同时格式要规范 邮件
* 13 ^w+@w+(.w+)+(,w+@w+(.w+)+)*$上面表达式也可以写成这样子,更精练。
14 ^w+((-w+)|(.w+))*@w+((.|-)w+)*.w+$ [/size]
匹配中文字符的正则表达式: [u4e00-u9fa5]


匹配特定数字:

^[1-9]d*$    //匹配正整数
^-[1-9]d*$   //匹配负整数
^-?[1-9]d*$   //匹配整数
^[1-9]d* |0$  //匹配非负整数(正整数 + 0)
^-[1-9]d* |0$   //匹配非正整数(负整数 + 0)
^[1-9]d*.d* |0.d*[1-9]d*$   //匹配正浮点数
^-([1-9]d*.d* |0.d*[1-9]d*)$  //匹配负浮点数
^-?([1-9]d*.d* |0.d*[1-9]d* |0?.0+ |0)$  //匹配浮点数
^[1-9]d*.d* |0.d*[1-9]d* |0?.0+ |0$   //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]d*.d* |0.d*[1-9]d*)) |0?.0+ |0$  //匹配非正浮点数(负浮点数 + 0)

由字母a~z(不区分大小写)、数字0~9、减号或下划线组成
只能以数字或字母开头和结尾 用户名长度为4~18个字符

 代码如下 复制代码

^[a-za-z0-9]{1}[a-za-z0-9|-|_]{2-16}[a-za-z0-9]{1}$

用户名为大写字母小写字母或下划线,并以字母开头,长度为6-20

 代码如下 复制代码

^[a-za-z][wd_]{5,19}

用户名:包括英文小写、汉字、数字、下划线,不能全部是数字,下划线不能在末尾

 代码如下 复制代码

/^[a-z0-9_u4e00-u9fa5]+[^_]$/g

utf-8下

preg_match("/^[a-z0-9_x80-xff]+[^_]$/g",$a);

gbk下:

preg_match("/^[a-z0-9_".chr(0xa1)."-".chr(0xff)."]+[^_]$/",$a)

邮箱

 代码如下 复制代码

function is_email($email){
return strlen($email) > 6 && preg_match(“/^[w-.]+@[w-]+(.w+)+$/“, $email);
}
?>

url地址

 代码如下 复制代码

function autolink($foo)
{
$foo = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_/+.~#?&//=]+)', '/1', $foo);
if( strpos($foo, "http") === FALSE ){
$foo = eregi_replace('(www.[-a-zA-Z0-9@:%_/+.~#?&//=]+)', '/1', $foo);
}else{
$foo = eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_/+.~#?&//=]+)', '/1/2', $foo);
}
return $foo;
}
?>

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/632636.htmlTechArticle今天看一个教程中有写了一些正则表达式用法,里面主要讲到了正则对字符的分割、匹配、查找、替换及一些入门知识与常用实例,所以整...
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

CakePHP 프로젝트 구성 CakePHP 프로젝트 구성 Sep 10, 2024 pm 05:25 PM

이번 장에서는 CakePHP의 환경 변수, 일반 구성, 데이터베이스 구성, 이메일 구성에 대해 알아봅니다.

Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Dec 24, 2024 pm 04:42 PM

PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

CakePHP 날짜 및 시간 CakePHP 날짜 및 시간 Sep 10, 2024 pm 05:27 PM

cakephp4에서 날짜와 시간을 다루기 위해 사용 가능한 FrozenTime 클래스를 활용하겠습니다.

CakePHP 파일 업로드 CakePHP 파일 업로드 Sep 10, 2024 pm 05:27 PM

파일 업로드 작업을 위해 양식 도우미를 사용할 것입니다. 다음은 파일 업로드의 예입니다.

CakePHP 라우팅 CakePHP 라우팅 Sep 10, 2024 pm 05:25 PM

이번 장에서는 라우팅과 관련된 다음과 같은 주제를 학습하겠습니다.

CakePHP 토론 CakePHP 토론 Sep 10, 2024 pm 05:28 PM

CakePHP는 PHP용 오픈 소스 프레임워크입니다. 이는 애플리케이션을 훨씬 쉽게 개발, 배포 및 유지 관리할 수 있도록 하기 위한 것입니다. CakePHP는 강력하고 이해하기 쉬운 MVC와 유사한 아키텍처를 기반으로 합니다. 모델, 뷰 및 컨트롤러 gu

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 Dec 20, 2024 am 11:31 AM

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는

CakePHP 유효성 검사기 만들기 CakePHP 유효성 검사기 만들기 Sep 10, 2024 pm 05:26 PM

컨트롤러에 다음 두 줄을 추가하면 유효성 검사기를 만들 수 있습니다.

See all articles