A. php中的正则表达式
/……/ 分割符 你懂的
\s是一个空白字符
(?=……)是前瞻断言,或说是向前看、正向预搜索。 简单说就是向右看……字符,不匹配字符,判断用的
整个\s(?=\s)来说就是
只匹配一个空格,并且在这个空格的右边必须还得接着一个空格。
B. PHP 正则表达式函数库
在PHP中有两套正则表达式函数库,两者功能相似,只是执行效率略有差异:
一套是由PCRE(Perl Compatible Regular Expression)库提供的。使用“preg_”为前缀命名的函数;
一套由POSIX(Portable Operating System Interface of Unix )扩展提供的(PHP默认)。使用以“ereg_”为前缀命名的函数;
PHP中,正则表达式有三个作用:
匹配,也常常用于从字符串中析取信息。
用新文本代替匹配文本。
将一个字符串拆分为一组更小的信息块。
一个正则表达式中至少包含一个原子。
原子(普通字符,如英文字符)
元字符(有特殊功用的字符)
模式修正字符(对正则表达式语义的修正)
原子(Atom)
单个字符、数字,如a~z,A~Z,0~9。
模式单元,如(ABC)可以理解为由多个原子组成的大的原子。
原子表,如 。
重新使用的模式单元,如:\\1
普通转义字符,如:\d, \D, \w
转义元字符,如:\*,\.
POSIX正则表达式
POSIX正则表达式全称为Portable Operating System Interface of Unix,意为UNIX可移植操作系实现接口。
http://www.33dir.com/news/2/2168.html
构造POSIX正则表达式的方法和创建数学表达式的方法一样,也就是用多种元字符与操作符将小的表达式结合在一起来创建更大的表达式。
C. php正则表达式是什么
是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
给定一个正则表达式和另一个字符串,我们可以达到如下的目的:
1. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”);
2. 可以通过正则表达式,从字符串中获取我们想要的特定部分。
正则表达式的特点是:
1. 灵活性、逻辑性和功能性非常的强;
2. 可以迅速地用极简单的方式达到字符串的复杂控制。
3. 对于刚接触的人来说,比较晦涩难懂。
由于正则表达式主要应用对象是文本,因此它在各种文本编辑器场合都有应用,小到着名编辑器EditPlus,大到Microsoft Word、Visual Studio等大型编辑器,都可以使用正则表达式来处理文本内容。
D. php正则表达式
这里涉及到正则表达式中得子串捕获的概念。php中的正则表达式使用的是pcre正则库,因此使用方式上和pcre是相同的,只不过是为了使用方便封装了一起便捷的操作而已。preg_match函数和preg_match_all函数用于在php中进行正则表达式的相关处理。下面看下preg_match函数的定义:intpreg_match(string$pattern,string$subject[,array&$matches])在$subject中查询$pattern,如果找到则把匹配的字符串存储在$matches中。$matches[0]中存放整个匹配的字符串,$matches[i]中存放匹配到的第i个捕获子串。题目的解决方法:$pattern="/^NAME(.*){$/";preg_match($pattern,$string,$match);echo$match[1];//$match[1]为提取的NAME和{之间的内容。关于捕获组信息($match的信息)详情,可以参考文档:http://wang
E. 详解PHP正则表达式:什么是正则表达式
正则表达式,又称规则表达式,英文名为Regular Expression,在代码中常简写为regex、regexp或RE,是计算机科学的一个概念。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。
正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,模式描述在搜索文本时要匹配的一个或多个字符串。
F. PHP正则表达式
数字:
^[0-9]*$
2
n位的数字:
^\d{n}$
3
至少n位的数字:
^\d{n,}$
4
m-n位的数字:
^\d{m,n}$
5
零和非零开头的数字:
^(0|[1-9][0-9]*)$
6
非零开头的最多带两位小数的数字:
^([1-9][0-9]*)+(.[0-9]{1,2})?$
7
带1-2位小数的正数或负数:
^(\-)?\d+(\.\d{1,2})?$
8
正数、负数、和小数:
^(\-|\+)?\d+(\.\d+)?$
9
有两位小数的正实数:
^[0-9]+(.[0-9]{2})?$
10
有1~3位小数的正实数:
^[0-9]+(.[0-9]{1,3})?$
11
非零的正整数:
^[1-9]\d*$
或
^([1-9][0-9]*){1,3}$
或
^\+?[1-9][0-9]*$
12
非零的负整数:
^\-[1-9][]0-9"*$
或
^-[1-9]\d*$
13
非负整数:
^\d+$
或
^[1-9]\d*|0$
14
非正整数:
^-[1-9]\d*|0$
或
^((-\d+)|(0+))$
15
非负浮点数:
^\d+(\.\d+)?$
或
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$
16
非正浮点数:
^((-\d+(\.\d+)?)|(0+(\.0+)?))$
或
^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$
17
正浮点数:
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$
或
^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
18
负浮点数:
^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$
或
^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
19
浮点数:
^(-?\d+)(\.\d+)?$
或
^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$
G. PHP正则表达式((:[0-9a-zA-Z$_.`-]|[\xC2-\xDF][\x80-\xBF])+)/is是什么意思
(?: )表示只进行分组,不进行捕获
[0-9a-zA-Z$_.`-] ——0-9、a-z、A-Z或$、_、.、`、-中的一个字符
| ——表示或者
[\xC2-\xDF][\x80-\xBF] ——用十六进制表示的字符范围【具体是什么字符不太清楚,比如汉字的范围一般是 4E00-9FA5】
+ ——前面的字符有一个或多个
(?: +) 外面的括号( )——是捕获括号。即不捕获单个匹配字符,只捕获匹配的最大字串。
/is——是PHP中正则表达式模式修饰符,其中i代表 不区分大小写,s代表:如果设定了这个修正符,那么,被匹配的字符串将视为一行来看,包括换行符,换行符将被视为普通字符串。
模式修饰符还有:m、x、e等
H. 怎样解读php中的正则表达式 (求详解)
^(https?|ftps?) -------- 以https或ftps开头 (协议名)
:\/\/ ------------------- ://
([a-zA-Z0-9-]+\.){1,5} ----- 一个以上的大小写字母或数字加点'.'为一组,出现1组到5组(域名)
(com|cn|net) ---------------- com或cn或net
\/? ---------------------------- 可能有一个/
(\/?index.php)? ----------------- 可能有index.php 文件名
(\??(\w+=\S+&?)+)?/' ---------- 可能有问号(加一个以上的字符,加等于号,可能有&)括号里的东西可能重复出现 (用get方式传递的参数)
所以可能匹配: http://abab.aba.com/index.php?id=123&name=jack 这样的url。
感觉这个写的不是很严谨,很多不是想要的也能匹配上。
| 表示或,问号表示出现0次或1次,加好表示出现1次以上,大括号里的是出现次数的上下限。
这个教程不错,简单而且比较够用:http://deerchao.net/tutorials/regex/regex.htm
I. php中正则表达式的一些问题
第一个,'/[^\/]+/' 里,前后的斜杠只是表示中间的内容是正则表达式,所以正则表达式是:
[^\/]+,其中\/是转义字符,表示斜杠/,中括号里的第一个元字符^表示非斜杠的字符,那
[^\/]+就是匹配长度至少为1,多无限的字符串了。
第二个:注意后面的元字符$,它表示一个文本的结束位置,所以取的是 php.net 而不是 www.php
第三个:正则表达式 [\/$]+ ,其中 \/ 是转义字符,表示斜杠,$表示文本结束位置,中括号是表达字符组的,也就是[\/$]可以匹配一个斜杠或者文本的结束位置,在这个文本里,最先匹配到的是斜杠,然后后面的 + 表示重复匹配连续着的属于这个字符组里的字符,刚才匹配了一个斜杠,那它会往后匹配到不能匹配位置,因此得到的就是双斜杠。