标签归档:正则表达式

【转】PHP正则表达式-贪婪与懒惰匹配

过去一直感觉这个地方很不好懂,今天又大致的看了一下,拿来跟大家共享一下,呵呵! 当正则表达式中包含能接受重复的限定符(指定数量的代码,例如*,{5,12}等)时,通常的行为是(在使整个表达式能得到匹配的前提下)匹配尽可能多的字符。考虑这个表达式:a.*b,它将会匹配最长的以a开始,以b结束的字符串。如果用它来搜索aabab的话,它会匹配整个字符串aabab。这被称为贪婪匹配。有时,我们更需要懒惰匹配,也就是匹配尽可能少的字符。前面给出的限定符都可以被转化为懒惰匹配模式,只要在它后面加上一个问号?。这样.*?就意味着匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复。现在看看懒惰版的例子吧:a.*?b匹配最短的,以a开始,以b结束的字符串。如果把它应用于aabab的话,它会匹配aab和ab(为什么第一个匹配是aab而不是ab?简单地说,最先开始的区配最有最大的优先权——The Match That Begins Earliest Wins)。表5.懒惰限定符*?重复任意次,但尽可能少重复+?重复1次或更多次,但尽可能少重复??重复0次或1次,但尽可能少重复{n,m}?重复n到m次,但尽可能少重复{n,}?重复n次以上,但尽可能少重复

发表在 默认分类 | 标签为 , | 留下评论

【转】smarty 学习 技巧篇

变量调节器 变量调节器用于变量,自定义函数和字符串。请使用‘|’符号和调节器名称应用调节器。变量调节器由赋予的参数值决定其行为。参数由‘:’符号分开。 例 5-1.调节器的例子 {* 把标题变为大写 *} <h2>{$title|upper}</h2> {* 截取40个字符,用省略号代替后面的文字 *} Topic: {$topic|truncate:40:”…”} {* 格式化字符串 *} {“now”|date_format:”%Y/%m/%d”} {* 定制函数进行修改 *} {mailto|upper address=”me@domain.dom”} 如果你给数组变量应用单值变量的调节,结果是数组的每个值都被调节。如果你只想要调节器用一个值调节整个数组,你必须在调节器名字前加上@符号。例如: {$articleTitle|@count}(这将会在 $articleTitle 数组里输出元素的数目) capitalize首字母大写 将变量里的所有单词首字大写。 例 5-2.首字大写 index.php: $smarty = new Smarty; $smarty->assign(‘articleTitle’, ‘Police begin campaign to … 继续阅读

发表在 Php | 标签为 , , , | 留下评论

正则表达式

import java.util.regex.Matcher;import java.util.regex.Pattern; public class Test { public static void p(Object o) {   System.out.println(o);} public static void main(String[] args) {   //简单认识正则表达式的概念     /* p(“abc”.matches(“…”));   p(“a8729a”.replaceAll(“\d“, “-”));// d 匹配数字 在java里 为“\”   Pattern p = Pattern.compile(“[a-z]{3}”);//将给定的正则表达式编译到模式中。   Matcher m = p.matcher(“fgh”);//创建 匹配指定输入与此模式     的匹配器。   p(m.matches());//编译给定正则表达式并尝试将给定输入与其匹配。     … 继续阅读

发表在 默认分类 | 标签为 | 留下评论