火车头的Blog!

火车,沉稳、快速的前进

2007年1月27日 #

正则贪婪模式/修饰符

5贪婪模式:
前面在元字符中提到过"?"还有一个重要的作用,即"贪婪模式",什么是"贪婪模式"呢? 
比如我们要匹配以字母"a"开头字母"b"结尾的字符串,但是需要匹配的字符串在"a"后面含有很多个"b",比如"a bbbbbbbbbbbbbbbbb",那正则表达式是会匹配第一个"b"还是最后一个"b"呢?如果你使用了贪婪模式,那么会匹配到最后一个"b",反之只是匹配到第一个"b"。 
    使用贪婪模式的表达式如下: 
/a.+?b/ 
/a.+b/U 
不使用贪婪模式的如下: 
/a.+b/ 
上面使用了一个修饰符U,详见下面的部分。


修饰符:
   
在正则表达式里面的修饰符可以改变正则的很多特性,使得正则表达式更加适合你的需要(注意:修饰符对于大小写是敏感的,这意味着"e"并不等于"E")。正则表达式里面的修饰符如下: 
i :如果在修饰符中加上"i",则正则将会取消大小写敏感性,即"a"和"A" 是一样的。 
m:默认的正则开始"^"和结束"$"只是对于正则字符串如果在修饰符中加上"m",那么开始和结束将会指字符串的每一行:每一行的开头就是"^",结尾就是"$"。 
s:如果在修饰符中加入"s",那么默认的"."代表除了换行符以外的任何字符将会变成任意字符,也就是包括换行符! 
x:如果加上该修饰符,表达式中的空白字符将会被忽略,除非它已经被转义。 
e:本修饰符仅仅对于replacement有用,代表在replacement中作为PHP代码。 
A:如果使用这个修饰符,那么表达式必须是匹配的字符串中的开头部分。比如说"/a/A"匹配"abcd"。 
E:与"m"相反,如果使用这个修饰符,那么"$"将匹配绝对字符串的结尾,而不是换行符前面,默认就打开了这个模式。 
U:和问号的作用差不多,用于设置"贪婪模式"。

posted @ 2007-01-27 10:54 _火车头_ 阅读(1247) 评论(3) 编辑

2006年10月29日 #

使用 MatchEvaluator 委托 对有汉字的整个url进行编码

采集项目中,因为经常会碰到中文的url,需要对整个url进行编码
 呵呵,代码最能说明问题,大家看吧

 System.Text.RegularExpressions.MatchEvaluator me = new System.Text.RegularExpressions.MatchEvaluator(cnUrlEncode);
            
string url = "http://community.csdn.net/中国人/Expert/中topic/5114/国5114234.xml?temp=.4305384人";
            
string urla = "http://community.csdn.net/Expert/topic/5114/5114234.xml?temp=.4305384";
            url 
= System.Text.RegularExpressions.Regex.Replace(url, "([\u4e00-\u9fa5])",me);


委托

private string cnUrlEncode(System.Text.RegularExpressions.Match m)
        
{
            
return System.Web.HttpUtility.UrlEncode(m.Groups[1].Value, System.Text.Encoding.Default);
        }

posted @ 2006-10-29 21:05 _火车头_ 阅读(377) 评论(0) 编辑

2006年10月28日 #

CONCAT_WS的用法

从数据库里取N个字段,然后组合到一起用“,”分割显示,起初想到用CONCAT()来处理,好是麻烦,没想到在手册里居然有提到CONCAT_WS(),非常好用。
CONCAT_WS(separator, str1, str2,...)
它是一个特殊形式的 CONCAT()。第一个参数剩余参数间的分隔符。分隔符可以是与剩余参数一样的字符串。如果分隔符是 NULL,返回值也将为 NULL。这个函数会跳过分隔符参数后的任何 NULL 和空字符串。分隔符将被加到被连接的字符串之间
简单例子如下:

mysql> SELECT CONCAT_WS(",","First name","Second name","Last Name");
       -> 'First name,Second name,Last Name'
mysql> SELECT CONCAT_WS(",","First name",NULL,"Last Name");
       -> 'First name,Last Name'

posted @ 2006-10-28 14:17 _火车头_ 阅读(1132) 评论(0) 编辑

2006年10月27日 #

C#写的一段解析 CSV 文件的代码 选择自 redv 的 Blog

摘要: 我们经常将Excel格式的文件保存为csv格式以方便上传和修改,可是当数据中包含逗号和双引号的时候Excel会把该字段用双引号括住并把数据中的"改为"",usingSystem;/**//***TheCommaSeparatedValue(CSV)FileFormat:http://www.creativyst.com/Doc/Articles/CSV/CSV01.htm*描述:解析CSV格式的文...阅读全文

posted @ 2006-10-27 14:14 _火车头_ 阅读(391) 评论(0) 编辑

2006年10月23日 #

盗链-真实地址嗅探

无聊之作,呵呵,发现对一些大的下载站及一些bt站的测试效果良好,只使用于以http方式下载的站点,ftp尚待研究

得到当前下载文件的url的真实文件地址:http://www.locoy.com/geturl/

posted @ 2006-10-23 12:57 _火车头_ 阅读(444) 评论(0) 编辑

本地MD5 SHA-1 函数 的JS实现

刚刚一段代码由于考虑用户体验要用js实现,但要传隐秘信息到服务器验证,找到该函数,测试成功,不支持中文, 但对通常的密码加密已足够


使用方法
<script type="text/javascript" src="md5.js"></script>


<script type="text/javascript" >
  hash = hex_md5("input string");
</script>


官方网站:http://pajhome.org.uk/crypt/md5/

个人认为的好处:
    1、减少服务器在md5加密的负担
    2、这样传输过程的安全也得到加强,使用JS可以得到更好的客户体验

 

md5.js下载

sha-1.js下载

posted @ 2006-10-23 12:54 _火车头_ 阅读(148) 评论(0) 编辑

2006年10月18日 #

The Atalasoft OCR engine

摘要: IntroductionAt Atalasoft, we’re excited to unveil the newest addition to our product line, Atalasoft OCR. This suite of objects, now available, provides interfacing to OCR engines in a way that ...阅读全文

posted @ 2006-10-18 17:15 _火车头_ 阅读(301) 评论(0) 编辑

给TreeList的根和子节点弹出不同的右键菜单

摘要: 好象没几个人用dev的treelist,好早就想实现这个效果,经过一个多小时的摸索,终于找到了实现方法定义两个不同的popup contentMenu在mouse_down事件中处理privatevoidJobTree_MouseDown(objectsender,MouseEventArgse){if(e.Button==MouseButtons.Right){DevExpress.XtraTr...阅读全文

posted @ 2006-10-18 00:02 _火车头_ 阅读(752) 评论(2) 编辑

2006年10月16日 #

ASCII码对照表[备忘]

摘要: ASCII码表    信息在计算机上是用二进制表示的,这种表示法让人理解就很困难。因此计算机上都配有输入和输出设备,这些设备的主要目的就是,以一种人类可阅读的形式将信息在这些设备上显示出来供人阅读理解。为保证人类和设备,设备和计算机之间能进行正确的信息交换,人们编制的统一的信息交换代码,这就是ASCII码表,它的全称是“美国信息交换标准代码”。   八进制 十六进制 十进制...阅读全文

posted @ 2006-10-16 10:12 _火车头_ 阅读(52037) 评论(4) 编辑

2006年10月2日 #

input和select表单合二为一

摘要: <inputstyle="width:100px;height:20px;"value="--------"onkeydown="if(event.keyCode==13)saveUinList(value)"onkeypress="return(event.keyCode>=48&&event.keyCode<=57)"id="textUin"onclick="...阅读全文

posted @ 2006-10-02 17:22 _火车头_ 阅读(326) 评论(0) 编辑

导航

统计信息

News

搜索

 
 

常用链接

随笔分类

随笔档案

相册

学习类

友情连接

娱乐类

最新评论

阅读排行榜

评论排行榜

推荐排行榜