zoukankan      html  css  js  c++  java
  • .Net培训个人总结笔记16

    学习交流,欢迎转载。转载请注明文章来源:http://www.cnblogs.com/lgjspace/archive/2011/10/12/2214011.html

    易错:
    表达式"^\d{15}$|^\d{18}$"和表达式"^(\d{15}|\d{18})$"效果一样,但这两个表达式和"^\d{15}|\d{18}$"不一样,前两者都表示有15位或18位数字组成的字符串,而后者则表示以15位数字开头或者以18位数字结尾的字符串,只要字符串开始前15位全是数字或者最后18位全是数字则符合要求,例如:"123456789012345sdf","asdfas123456789012345678","123456789012345sdfsdf123456789012345678"等都符合匹配。

    课外:
    从网上搜索到的判断是否是邮箱格式的正则表达式(暂时还没能完全看懂):"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"

    细节:
    以下正则表达式的功能是匹配出(大旗网)html文本中的图片链接全路径,其中外层圆括号是为了提取出图片的全路径地址,内层括号作用如下所述。
    MatchCollection matches = Regex.Matches(html, "img\\s+src\\s*=\\s*[\"'](.+?(/\\w+\\.\\w+))[\"']");  //注意:正则表达式中的问号以及紧跟着问号后面的一对园括号不能省略,因为圆括号括着的是路径中文件名的特征(括号是把文件名前面的“/”和文件名捆绑在一起,以便前面的非贪婪问号识别,如果不加圆括号的话前面的非贪婪问号就只会尽早识别“/”,而不是尽早识别“/文件名.文件后缀”,这样的话表达式遇到路径中的第一个“/”时就立刻结束,从而导致文件路径不完整。

    细节:
    WebClient wc = new WebClient();
    wc.BaseAddress = "http://www.daqi.com/";
    //WebClient中的一个属性,专门用来设置基址,即目的地址的相对路径前面的基本地址,如:“http://img.daqi.com/img/0927/images/logo.png”的基址就是:“http://img.daqi.com/”。

    细节:
    string result = Regex.Replace(content, "(a+)", "【$1】"); //这里的“$1”表示在第二个参数里的正则表达式里的第一个组(即第一个圆括号里面)的内容。

    有趣收获:
    string content = "http://sina.com.cn";
    result = Regex.Replace(content, @".*", "1");
    Console.WriteLine(result);
    打印结果是:“11”,但若 content = ""; 时,打印结果则是:“1”。
    原因出在匹配的正则表达式上,当 content 为空字符串时,空字符串也能被 “.*” 匹配出一个结果,所以打印结果有一个 “1”;而当 content 不为空字符串(即有字符内容)时,能被 “.*” 匹配出的结果有且必然有两个,分别是 "" 和 "content里面的所有非空字符",因此此时打印结果有两个“1”,即 “11”。

    细节:
    Match match = Regex.Match("","");
    match的Groups属性是从Groups[1]开始,若Groups[0]是表示整个match的内容,而不是某个组的内容。

    经验:
    若在正则表达式中需要匹配普普通通的圆括号,则表达式中的圆括号是不需要用 “\” 来对其进行转义的。

  • 相关阅读:
    模板模式创建一个poi导出功能
    vim python和golang开发环境配置
    vim快捷键
    golang聊天室
    goroutine与channels
    Redis中的GETBIT和SETBIT(转载)
    二叉树
    满二叉树与完全二叉树
    拓扑排序
    ZigZag Conversion
  • 原文地址:https://www.cnblogs.com/lgjspace/p/2214011.html
Copyright © 2011-2022 走看看