php 正则mysql语句_php与mysql程序设计之字符串与正则表达式二

正则表达式Perl风格的语法:

perl风格的语法与POSIX稍有不同,以两个斜线为表达式的边界,例:

/food/ 或者/fo+/

1,修饰符

修饰符对编写简洁短小的表达式大有帮助,以下是一些注意的修饰符。

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

g 查找所有出现

m  将一个字符串视为多行。

s 将一个字符串视为一行,忽略其中的所有换行符。

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

U 第一次匹配后停止.防止贪婪。

这些修饰符直接放在正则表达式的后面,

2,元字符

\A 只匹配字符串开头。

\b 匹配单词边界。

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

\d 匹配数字字符。

\D 匹配非数字字符。

\s 匹配空白字符。

\S 匹配非空白字符。

[]

()

$

^

.

\  引出下一个元字符。

\w  匹配字母数字下划线。

\W 与其相反

例:

\b的用法    /sa\b/      就可以与pisa和lisa匹配,而不匹配sand

php正则表达式函数之Perl风格

为使用perl风格的正则表达式搜索字符串提供了7个函数:

arraypreg_grep(string pattern,array input [,flags])

此函数搜索叔祖中的所有元素,返回由与某个模式匹配的所有元素组成的数组(注意是搜索数组)

可选参数将输出不匹配数组元素。

<?php $foods = array("hello","how","fuck","you");$food = preg_grep("/^h/",$foods);print_r($food); //将输出array([0]=>hello,[1]=>how)

?>

int preg_match ( string $pattern , string $subject [, array $matches [, int $flags ]] )

此函数在字符串中搜索模式,注意返回所匹配的次数,因为preg_match()在第一次匹配之后将停止搜索。所以要麽返回0次要麽返回1次。与preg_match_all()则相反,会一直搜索到结尾。

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

此函数在字符串中匹配模式的所有出现,以便通过可选的输入参数order所指定的顺序。

<?php $userinfo = "Name:Zeev Suraski
Title:PHP

Guru";preg_match_all("/(.*)/U",$userinfo,$pat_array);printf("%s
%s",$pat_array[0][0],$pat_array[0][1]);?>

这里注意:参数$pat_array与之前的函数输出数组并无不同,[0]位输出整个匹配的项,只不过当有多个匹配项时将作为一个数组放在[0]位里,例如上例中$pat_array[0]的内容是array([0]=>Zeev Suraski[1]=>PHP Guru),而$pat_array[1]、$pat_array[2]....则是小括号的内容,当然如果有多个匹配项的话,那$pat_array[1]、[2]则也是数组,一个包含多个小括号里内容的数组。

string preg_quote(string str [,string delimiter])

此函数preg_quote()在每个对于正则表达式语法而言有特殊含义的字符前插入一个反斜线。包括:$^*+={}[]|\\:<>

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

此函数用replcement替换pattern的所有出现,并返回修改后的结果。

例:

<?php $text = "This is a link to http://www.wjgilmore.com/.";echo preg_replace("/http:\/\/(.*)\//","\${0}",$text); //注意因为“和$在表达式中都有含义所以要用反斜线转义。

?>

参数pattern和replacement还可以是数组,例:

mixed preg_replace_callback(mixed pattern,callback callback,mixed str[, int limit])

定制函数进行替换。

<?phpfunction arconmy($matches){$arconys = array("VIP"=>"very import peron","scjp"=>"sun certification java person","PET"=>"English is very good");if(isset($arconys[$matches[1]])){return $matches[1]."(".$arconys[$matches[1]].")";

}else

return $matches[1];

}$text ="VIP is very well ,scjp is very well ,PET is very well";$new = preg_replace_callback("/\b(.*)\b/U",'arconmy',$text);echo $new;?>

array preg_split(string pattern,string string [,int limit[,int flags]])

此函数以不区分大小写的方式将字符串划分为不同的元素。

<?php $delimitedText ="Jason+++++Gilmore+++++++Columbus+++OH";$fields = preg_split("/\+{1,}/",$delimitedText);foreach($fields as $field)echo $field."
";?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值