为了账号安全,请及时绑定邮箱和手机立即绑定
  • A、可见原子是指Unicode编码中用键盘输出后肉眼可见的字符。 包括:1、标点;2、英文字母数字;3、汉字,日文,阿拉伯文等其他语言文字;4、∑,∈,≌等数理化公式符号;5、其他可见字符。 B、不可见原子就是Unicode编码中用键盘输出后肉眼不可见的字符。 例如:1、换行符:\n;2、回车:\r;3、制表符:\t;4、空格;5、其他不可见的符号。 不可见原子比较经常用到的一般只有3个,空格(直接敲空格),Tab制表符(\t),回车(\n);因为回车本身不占空间,匹配之后也看不见,可以在\n后面加上匹配换行后的首个字符或Tab制表符等。。。
    查看全部
  • 正则表达式:字符串搜索和匹配的工具 表单验证 界定符:表示正则表达式的开始和结束;/[0-9]/ ,#[0-9]#,{[0-9]} regexpal 原子:最小的匹配单位,通常只是Unicode编码表的一个字符。 可见原子:标点、英文字母数字、汉字/日文/阿拉伯文字等其他语言、数理化公式、其他可见字符; 汉字的匹配:避免编码产生的位置错误,转换成Unicode,使用转换工具转; 正则表达式运算符:用\转义; 不可见原子:Unicode编码表中用键盘输出的不可见字符; 空格:直接敲 TAB制表符:\t 回车:\n 元字符:定义原子的筛选方式,归类原子 筛选方式:匹配两个或者多个分支 []匹配括号中的任意原子 ^匹配括号中的原子之外的任意字符、 .匹配除换行符外的任意字符 \d匹配任意一个十进制数、\D匹配任意一个非十进制数字 \s匹配一个不可见原子、\S匹配任意一个可见原子 \w匹配任意一个数字、字母或下滑线 \W匹配任意一个非数字、字母或下滑线 量词:某一个原子或原子的集合连续出现的次数 {n} =n 示例/d{2}/ {n,}>=n {n,m}>=n且<=m * 任意次 + >=1 ? 0或1 边界控制: ^开始位置 $结束位置 模式控制: ()当成一个原子来匹配
    查看全部
  • 讲师是痴汉
    查看全部
  • 你会怎么实现注册邮箱的验证? 同学A->把Email地址用Ajax异步提交到服务器上,让PHP来验证,再把验证的结果返回给浏览器. 同学B->那样做太麻烦,会耗费服务端的资源,直接把Email地址交给JS代码去验证处理 同学C->H5时代,直接在表单的input元素上加上一个数据验证的属性,规定必须输入Email就行了 结论:正则表达式在各个编程语言中都已经有良好的支持。
    查看全部
  • $pattern="/[0-9]/"; $subject = 'adjf3274987jaidjf873rji23j'; $ma1 = $ma2 = array(); $t1 = preg_match($pattern,$subject,$ma1); $t2 = preg_match_all($pattern,$subject,$ma2); show($ma1); echo "<hr />"; show($ma2); echo '<hr />'; echo '显示返回值<br/>'; show($t1.'#$'.$t2);
    查看全部
  • 1.开发推荐$pattern="正则表达式"; $subject="要匹配的目标字符串";<br> 2.preg_replace()和preg_filter()//功能基本一致,只不过在$subject为数组时<br> 两个函数返回的数据不一样,第一个会保留未匹配的和匹配替换的数据,第二个只会保留 匹配替换的数据,都是以数组形式保存,如果$subject为字符串时,返回结果是替换后的字符串<br> 3.当$subject为数组时,数组的键值会被一一匹配,匹配一次算一次
    查看全部
  • 将汉字转化为unicode查询
    查看全部
  • //正则表达式模式修正(在正则表达式代码中如何体现?只需在正则表达式的第2个/后加上修正模式的标识。[懒惰模式的标识是U]) //$pattern = '/imooc.+123/';//首先寻找imooc单词并且后面跟上.(除了换行符之外的任意字符)并且匹配1次到无穷大次(有很多种情况)并且结尾以123作为结束。 $pattern = '/imooc.+123/U';//懒惰模式(匹配结果取多种可能性中最短的那个) //匹配结果有多种可能(imooc__123,imooc__11213123,...),这个时候正则表达式在目标字符串上产生了歧义。 //匹配的结果存在很多种可能性,到底取哪种作为输出结果呢?这时需要给正则表达式指定一个修正模式来告诉PHP我们想要哪种结果。默认采用的是贪婪模式(选择匹配结果最长的那个)。 $subject = 'I love imooc__123123123123123123'; $matches = array(); preg_match($pattern,$subject,$matches); show($matches);
    查看全部
  • ^\w+(\.\w+)*@\w+(\.\w+)+$ 【email地址】=>@前是字母数字或下划线,连续出现的次数一次到无限大次,也可能会有点出现多次 ==>/^\w+(\.\w+)*@\w+(\.\w+)+$/ email地址匹配: ^\w+(\.\w+)*@\w+(\.\w+)+$ 。 1、@前面可能会有.ad的形式,用模式单元(\w+)至少出现0次。 匹配邮箱 ^\w+(\.\w+)*@\w+(\.\w+)+$ ^\w表示必须以大小写字母或下划线开头 (\.\w+)*表示 .xxx在@前的邮箱名中可以出现0~无限次 0次的情形:kjrb@homeway.com.cn 2次的情形:musi.ca.l@public.net \w+表示@后面必须出现1~无穷次字母或下划线 第二个(\.\w+)+表示 域名的原理同第一个(\.\w+)+ 但是多了一个+表示至少有一次.xxx(至少是顶级域名结尾) 最后$也控制了必须以.xxx的域名结尾的往事
    查看全部
  • 1、{n} 表示其前面的原子恰好出现n次。 2、{n,} 表示其前面的原子最少出现n次。 3、{n,m} 表示其前面的原子最少出现n次,最多出现m次。 4、* 匹配0次,1次,或者多次其之前的原子,即{0,}。 5、+ 匹配1次,或者多次其之前的原子,即{1,}。 6、? 匹配0次,1次,或者1次其之前的原子,即{0,1}。
    查看全部
  • 界定符 :表示一个正则表达式的开始和结束;EG:/[0-9]/; 正则表达式的本质也是一个字符串,只不过这个字符串的前后都有一个斜杠。 界定符虽然也算正则表达式语法中的一份子,但在理解的时候可以认为界定符不是正则表达式的组成部分,它只是告诉PHP的解析器,正则表达式从哪里开始到哪里结束。在PHP语言中,界定符是两个斜杠/[0-9]/,除此之外,还可以写成#[0-9]#,{[0-9]}(在PHP中,习惯不使用{},避免界定符和运算符两者相混淆)。 $pattern = '/[0-9]/' 或者 #[0-9]# {[0-9]}(不推荐使用大括号);
    查看全部
  • <?php require_once 'template.class.php'; //获取到项目的根目录的完整路径;为了兼容Linux平台,把Windows中的正斜杠\统统替换成反斜杠/ $baseDir = str_replace('\\','/',dirname(__FILE__)); //实例化模板引擎 $temp = new template($baseDir.'/source/',$baseDir.'/compiled/'); //使用模板引擎去调用assign这个方法,然后向变量池中赋值两个变量 //$temp->assign($tag,$var); $temp->assign('pagetitle','山寨版Smarty'); $temp->assign('test','imooc女神'); //获取到模板的源文件 $temp->getSourceTemplate('index'); //编译模板文件,不传名称,使用默认的index $temp->compileTemplate(); //把编译之后的目标显示出来 $temp->display(); ?>
    查看全部
    1 采集 收起 来源:模板引擎测试

    2018-03-22

  • //模板引擎类--模板编译;通过$templateName去生成它的编译文件,默认为空 public function compileTemplate($templateName = null,$ext='.html'){ //先获取到当前处理的模板文件的名称,首先检测一下它是否为空,是则从私有成员中获取,否则就用用户输入的$templateName $templateName = empty($templateName) ? $this->currentTemp : $templateName; //核心代码,编译模板中需要用到的正则替换 //定义一个正则表达式;这个$pattern就是一段可以匹配到模板中需要替换成变量的这么一个标记的正则表达式\{#\$(\w+)#\} $pattern = '/'.preg_quote($this->leftTag);//左侧的\{# $pattern .= ' *\$([a-zA-Z_]\w*) *';//中间的正则,为了给前端灵活的变量名书写方法,允许变量名前后有空格 $pattern .= preg_quote($this->rightTag).'/';//右侧的#}\ //需要对outputHtml,也就是从模板源文件中获取到的这段html代码中去寻找,用这个正则表达式去匹配这个标记,然后将它替换成我们想要的那种PHP代码,也就是PHP能够识别的那种变量的代码。 //使用preg_replace函数作一个正则的替换,$1表示使用这个$pattern匹配到的数据中的子模式,并且是第一个子模式 $this->outputHtml = preg_replace($pattern,'<?php echo $this->getVar(\'$1\') ?>',$this->outputHtml); }
    查看全部
  • //模板引擎类--写入和获取数据 //这个目标的作用是在编译模板之前把模板中需要用到的变量,全部放到变量池中,并且给定义一个标记 public function assign($tag,$var){ $this->varPool[$tag] = $var; } //获取数据的方法 public function getVar($tag){ return $this->varPool[$tag]; }
    查看全部
  • //定义一些在函数外部调用的数据验证的方法 public function noEmpty($str){//验证数据是否为空,返回结果由regex函数来确定。$validate里已经有检测非空的正则表达式require,直接传递进去。 //return $this->regex($pattern,$subject); return $this->regex('require',$str); } //验证Email是否正确的方法 public function isEmail($email){ return $this->regex('email',$email); } //验证手机号是否正确的方法 public function isMobile($mobile){ return $this->regex('mobile',$mobile); } //定义一个用户自定义正则表达式的验证方法 public function check($pattern,$subject){ return $this->regex($pattern,$subject); }
    查看全部

举报

0/150
提交
取消
课程须知
学习本课程之前需要掌握基本的PHP语法,基本的OOP思想,基本的MVC模式知识。
老师告诉你能学到什么?
在本课程中可以充分理解正则表达式的定义并掌握如何在实际开发中应用正则表达式。其中包含表单验证实际应用以及简易版模板引擎的实现。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!