日志列表
RSSphp一些常用的正则表达式
匹配中文字符的正则表达式:[u4e00-u9fa5]
评注:匹配中文还真是个头疼的事,有了这个表达式就好办了
匹配双字节字符(包括汉字在内):[^x00-xff]
评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
匹配空白行的正则表达式:ns*r
评注:可以用来删除空白行
匹配HTML标记的正则表达式:< (S*?)[^>]*>.*?|< .*? />
评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力
匹配首尾空白字符的正则表达式:^s*|s*$
评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式
匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
评注:表单验证时很实用
匹配网址URL的正则表达式:[a-zA-z]+://[^s]*
评注:网上流传的版本功能很有限,上面这个基本可以满足需求
匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
评注:表单验证时很实用
匹配国内电话号码:d{3}-d{8}|d{4}-d{7}
评注:匹配形式如 0511-4405222 或 021-87888822
匹配腾讯QQ号:[1-9][0-9]{4,}
评注:腾讯QQ号从10000开始
匹配中国邮政编码:[1-9]d{5}(?!d)
评注:中国邮政编码为6位数字
匹配身份证:d{15}|d{18}
评注:中国的身份证为15位或18位
匹配ip地址:d+.d+.d+.d+
评注:提取ip地址时有用
匹配特定数字:
^[1-9]d*$ //匹配正整数
^-[1-9]d*$ //匹配负整数
^-?[1-9]d*$ //匹配整数
^[1-9]d*|0$ //匹配非负整数(正整数 + 0)
^-[1-9]d*|0$ //匹配非正整数(负整数 + 0)
^[1-9]d*.d*|0.d*[1-9]d*$ //匹配正浮点数
^-([1-9]d*.d*|0.d*[1-9]d*)$ //匹配负浮点数
^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$ //匹配浮点数
^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$ //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$ //匹配非正浮点数(负浮点数 + 0)
评注:处理大量数据时有用,具体应用时注意修正
匹配特定字符串:
^[A-Za-z]+$ //匹配由26个英文字母组成的字符串
^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串
^[a-z]+$ //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串
^w+$ //匹配由数字、26个英文字母或者下划线组成的字符串
评注:最基本也是最常用的一些表达式
这个月发工资后,马塍路外婆家,要去的赶快跟帖呀,哈哈哈。。。
ps:据说是15号发,大家可能还要等几天了
windows 下 vim 安装配制 taglist + ctags
在windows下安装:
1. 先在www.vim.org上下载 taglist_45.zip,解压后有两个文件doc和plugin。把这个两个文件,拷到vim的安装目录的doc和plugin下即可
2. 打开vim
:helptags $(home)/doc
:help taglist
这时就可以看taglist的帮助内容了。
3. 下载Exuberant Ctags
下载一个支持windows的版本的,只要拷贝出ctags.exe这个文件就可以,把它放在$(home)vim71下(也就是在vim的安装目录下找到.exe这样的文件所在的文件目录下)
特别重要的地方:
编辑_vimrc,在里面加入以下两句:
set tags=tags;
set autochdir
注意第一个命令里的分号是必不可少的。这个命令让vim首先在当前目录里寻找tags文件,如果没有找到tags文件,或者没有找到对应的目标,就到父目录中查找,一直向上递归。因为tags文件中记录的路径总是相对于tags文件所在的路径,所以要使用第二个设置项来改变vim的当前目录。如果不加入这两个语句,那么有的宏定义,还有一些就找不到了。
4. 同时按下win + R , 键入cmd,打开dos窗口,在所要看的源代码根目录下运行:
ctags -R
如果不能运行,可能是ctags.exe的路径没有设置。
在这个目录下会生成一个tags文件。可以看看里面的内容。
5. 打开源文件,键入
:Tlist (再次键入时,关闭)
这时可以看到两个窗口(要改变窗口的位置,可以修改taglist.vim或是在_vimrc中修改)
==================================
最常用的几个命令:
:Tlist //打开或关闭ctags
ctrl + ]
ctrl + o
ctrl + ww //切换窗口
:sp 文件名 //同时打开多个文件
:NERDTree //打开目录树
==================================
新公司上班第一天:)
本来说的是昨天去上班的,昨天早上快到公司了给我打一电话说因为公司电脑还没有到位,让我下周一去上班,晚上又给我回了一电话说电脑到了,唉,现在的工作还真是难啊。
整体来说今天也没啥事,也许是第一天,也就是把机子给整了下,把平时工作中要用的环境都给弄了下。
今天第一天就把自己的网给弄断了,由于软环境要下大量的软件,瞬间流量超高,路由自动把我的IP给XX掉了,那个郁闷呀,这个好像是我每到一个新的公司都会遇到的问题,汗一个-_-!!。
公司环境还不错,同事也都还蛮热情,整体来说感觉还不错,就是感觉考勤好严哦,迟到一次扣50,像我这样经常迟到的人也要注意点了。但据说全勤的话还有200的全勤奖,为了这200的全勤我一定要早起、早起,哈哈,不要笑话,谁让现在钱这不好攒咧,唉睡觉了,明天还得早起咧。
一晃失业都已经有一个多月了,时间还真快,明天终于又要去上班啦,呵呵,小小庆祝一下。又要恢复那朝九晚五的生活了,又不能每天睡懒觉了 呜,呜,呜,不过还是蛮高兴的
嘿嘿
php 查询 mysql时区分大小写
如果想让php在查询时能区分大小写可以在字段前面加一个字段 ‘binary’
如:我想模糊查询标题中包含 ’pHp‘ 这个单词的记录可以这样来写
select title from table where binary title like ‘%pHp%’
如果写成
select title from table where binary title like ‘%php%’
将查询不到
这样在查询的时候就会按照大小写来进行搜索
当然你也可以修改数据库字段的类型为 ‘binary’
这样你所有的查询都将以区分大小写来查询
php中utf-8编码和GB2312编码 正则表达式汉字匹配
在javascript中,要判断字符串是中文是很简单的。比如:
var str = 'php编程'; if (/^[u4e00-u9fa5]+$/.test(str)) { alert('该字符串全部是中文'); } else { alert('该字符串不全部是中文'); }
想当然的,在php中来判断字符串是否为中文,就会沿袭这个思路:
不过,很快就会发现,php并不支持这样的表达,报错:
Warning: preg_match() [
function.preg-match
]: Compilation failed: PCRE does not support L, l, N, U, or u at offset 3 in test.php on line 3
,想从php正则表达式对于十六进制数据的表达方式上进行突破,发现在php中,是用x表示十六进制数据的。于是,变换成如下的代码:
$str = 'php编程'; if (preg_match("/^[x4e00-x9fa5]+$/", $str)) { echo '该字符串全部是中文'; } else { echo '该字符串不全部是中文'; }
貌似不报错了,判断的结果也正确,不过把$str换成“编程”两字,结果却还是显示“该字符串不全部是中文”,看来这样的判断还是不够准确。
模式修正符: u
u (PCRE_UTF8)
此修正符启用了一个 PCRE 中与 Perl 不兼容的额外功能。模式字符串被当成 UTF-8。本修正符在 Unix 下自 PHP 4.1.0 起可用,在 win32 下自 PHP 4.2.3 起可用。
例子:
preg_match(‘/[x{2460}-x{2468}]/u’, $str); 匹配 内码汉字
按照他提供的方式进行测试,代码如下:
$str = 'php编程'; if (preg_match("/^[x{2460}-x{2468}]+$/u", $str)) { echo '该字符串全部是中文'; } else { echo '该字符串不全部是中文'; }
发现这次依然对是否为中文判断失常。不过,既然x表示的十六进制数据,为什么和js里边提供的范围x4e00-x9fa5不一样呢?于是我就换成了下边的代码:
$str = 'php编程'; if (preg_match("/^[x4e00-x9fa5]+$/u", $str)) { echo '该字符串全部是中文'; } else { echo '该字符串不全部是中文'; }
本来以为铁定成功了的事情,没想到,warning又一次产生了:
Warning: preg_match() [
function.preg-match
]: Compilation failed: invalid UTF-8 string at offset 6 in test.php on line 3
看来又有错误的表达方式了,于是对照了一下那篇文章的表达方式,给“4e00”和“9fa5”两边分别用”{“和“}”包起来,跑了一遍,发现真的准确了:
$str = 'php编程'; if (preg_match("/^[x{4e00}-x{9fa5}]+$/u", $str)) { echo '该字符串全部是中文'; } else { echo '该字符串不全部是中文'; }