php

位置:IT落伍者 >> php >> 浏览文章

PHP正则表达式基本函数


发布日期:2024年07月15日
 
PHP正则表达式基本函数

在PHP正则表达式中需要转义的字符如下

$^*()+={}[]|/:<>?"

注意perl风格中表达式要求以/开始和结尾/food/ 表匹配字符 food

perl修饰符如下

i 完成不区分大小写的搜索

g 查找所有出现(all occurrences完成全局搜索)

m 将一个字符串视为多行(m就表示多(multiple))默认情况下^和$字符匹配字符串中的最开始和最末尾使用m修饰符将使^和$匹配字符串中每行的开始

s 将一个字符串视为一行忽略其中的所有换行符;它与m修饰符正好相反

x 忽略php正则表达式中的空白和注释

U 第一次匹配后停止默认情况下将找到最后一个匹配字符结果利用这个修饰符可以在第一次匹配后停止进而形式循环匹配

元字符说明

利用Perl正则表达式还可以做另一件有用的事情这就是使用各种元字符来搜索匹配元字符(metacharacter)就是一个前面有反斜线的字母字符表示某种特殊含义以下是一些有用的元字符

A 只匹配字符串开头

b 匹配单词边界

B 匹配单词边界之外的任意字符

d 匹配数字字符它与[]相同

D 匹配非数字字符的php正则

s 匹配空白字符

S 匹配非空白字符的php正则

[] 包围一个字符类字符类包括[] [az] [azAZ] 等类似

() 包围一个字符分组或定义一个反引用

$ 匹配行尾

^ 匹配行首

* 匹配前面的子表达式零次或多次要匹配 * 字符请使用 *

+ 匹配前面的子表达式一次或多次要匹配 + 字符请使用 +

? 匹配前面的子表达式零次或一次或指明一个非贪婪限定符 ?

匹配除换行之外的任何字符

引出下一个元字符

w 匹配任何只包含下划线和字母数字字符的字符串它与 [azAZ_]相同

W 匹配没有下划线和字母数字字符的字符串的php正则

Perl风格函数有

array preg_grep(string pattern array input [ flags])

搜索数组中所有元素返回由与某个模式匹配的所有元素组成的数组

PHP 增加了一个可选参数 flag它接受一个值 PREG_GREP_INVERT 传递此标志将得到与该模式不匹配的数据元素

int preg_match(string pattern string string [ array matches [ int flags [ int offset]]])

在字符串中搜索模式如果存在返回TRUE否则返回FALSE

可选输入参数matches可以包含搜索模式中包含的子模式的各个部分默认返回 匹配的字符串当有()子包围时会在数组后面输出

int preg_match_all(string pattern string string array pattern_array [ int order])

和函数 preg_match一样不过 preg_match 只搜索一次而 preg_match_all 会执行循环搜索返回所有匹配的结果

mixed preg_replace(mixed pattern mixed replacement mixed str [ int limit])

用replacement替换pattern的所有出现并返回修改后的结果

可选 limit 指定应当发生多少次匹配不设置limit或设置为将替换所有出现的情况

以上为常用函数还有 preg_quote preg_replace_callbak preg_split等详细解释略

               

上一篇:php调用MsSQL存储过程使用内置RETVAL获取过程中的return值

下一篇:解析php file