- 博客(8)
- 收藏
- 关注
原创 正则表达式中的?和?:
有时会看到.*?或者?:\w+的规则,一直不知道是什么意思。后来查了下,搞明白了。1.首先看下.*?举个例子吧还是,比如要去掉一篇文章中的所有script标签及内容。php代码如下:$rule = '#<script[^>]*>.*<\/script>#i';$str = "<script>var test = '测试';alert(test);</script>大难不死!英52岁夫妇海上漂浮7小时后获救</h1><p class='otitle'>你好</p><script>alert('测试一下
2016-09-12 11:27:20
414
原创 正则表达式学习(三)转义和反义
正则表达式的转义和反义,一字之差,概念却是完全不同的。1.转义转义就是使用正则表达式中的一些特殊字符引起歧义的时候,用“\”取消原本的特殊意思,比如如果想匹配*或者?,因为正则表达式里*和?都是元字符,有着特殊的意义,所以如果想匹配这两个字符,需要用\*,\?。又或者匹配常见的url网址,“.”本身有着其特殊的意义,所以这时也需要进行转义\.。那么是不是当出现特殊字符时,都需要进行转义呢?比如这个元字符出现在字符组里,例如[abc(*?{}],其中(,*,{}需要进行转义吗?答案是不需要,因为尽管
2016-09-12 11:02:45
1993
原创 正则表达式学习(二)字符组和分支
上篇讲了正则表达式的元字符和量词,对正则表达式也有了一个初步的了解。这篇学习下字符组和分支1.字符组字符组就是用[]来匹配任意一个字符,比如我们想找到包含字符a或u的单词。就可以通过字符组来写规则:#\b[a-z]*[au][a-z]*#i另外字符组里-表示范围,如果要匹配包含-的字符,[]里一定要对-进行转义,即[\-],那像(),{}在[]要不要进行转义呢,答案是不需要,因为在[]里(),{}只是作为普通字符。2.分支比如我们用c[au]t可以匹配cat或cut。那如果我们像匹配包含任意两个
2016-09-12 10:26:43
378
原创 正则表达式学习(一)认识正则表达式
正则表达式一直是我的弱项,平时项目里用到很多时候都是去网上查。所以趁项目完结系统的又重新学习了下。我们来看一个正则表达式:#<div\s+[^>]*>(.*?)<\/div>#i一个完整的正则表达式如上,有三部分组成:分隔符、表达式、修饰符①分隔符除了字母、数字、下划线、空白符以外的任何字符,比如/、#、~、%、@等。比较常用的就是/、#和~,但是为了避免与反斜线混淆,一般不用/。②表达式表达式就是我们所写的匹配规则,由一些特殊字符和非特殊字符组成的。表达式包括元字符、字符组、分支、环视等一
2016-09-12 08:50:19
454
原创 新闻数据分页查询的优化
关于分页的优化相信很多博客里都有描述,原理都是一样的。比如大多数举的例子:select * from t1 limit 10000,10;可以转换成select * from t1 where id>=(select id from t1 limit 10000,1) limit 10;id为主键,这样直接先查id,因为是索引覆盖的查询方式,所以很快。但是根据id有一个问题,如果你的主键id不是自增的,或者中间有很多数据被删除了,然后又插入了新的数据。这样自增的顺序可能会被打乱,再这样去查询会不会
2016-09-10 10:09:52
789
原创 mysql中int类型的宽度M解析
一直以来在MYSQL建表的时候都有一个困惑,那就是关于int类型。int(M)这个M代表什么?比如我定义一个文章的主键news_id为int(8)为什么要定义为8?如果我存储一个位数为10的数3445667788,发现实际也是可以存储的。于是查看mysql的手册,发现有这样一段话:M指示最大显示宽度。最大有效显示宽度是255。显示宽度与存储大小或类型包含的值的范围无关。
2016-09-10 09:36:18
2744
1
原创 php调用sphinx
1.sphinx重要的几个方法①setMatchMode ( int $mode )全文检索模式匹配$mode表示匹配模式, 有以下5种匹配模式Constant DescriptionSPH_MATCH_ALL 匹配所有查询关键字,比如你搜索"杭州钢材",那么实际搜索的是同时包含"杭州"和"钢材"两个关键字的文章SPH_MATCH_ANY 匹配任意一个查询关键字,比如你搜索"杭州钢材",那么实际搜索的是包含"杭州"或"钢材"关键字的文章SPH_MATCH_PHRASE 将查询看成一
2016-08-26 09:13:34
3763
原创 全文检索的实现方式
近段时间公司项目的需要,需要对新闻资讯进行全文检索。新闻资讯总的访问量是日pv1000万,这其中有点水分,有些是爬虫爬的。历史数据量大概是500万+,性能要求支持400个并发请求。页面加载速度需要在1.5秒内加载完毕。所以针对全文检索这块一开始考虑到使用sphinx或者lucence。最终选择了sphinx,一是它的配置相对来说简单,另外它的效率比较高。但是它对中文的分词支持不太好,google了下,基于sphinx的coreseek和sphinx for chinese在中文检索方面还是不错的。但是c
2016-08-25 16:19:15
4071
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人