• 看下字符搜索的代码

  • 本文关于 c#
  • CodeGo.net > 看下字符搜索的代码
  •  

    看下字符搜索的代码



    c#
    搜索文件中的email
    System.IO.StreamReader sr = new System.IO.StreamReader(@"C:\11.txt",System.Text.Encoding.GetEncoding("gb2312"));
    string str = sr.ReadToEnd();
    System.Text.RegularExpressions.Regex mailRegex = new System.Text.RegularExpressions.Regex(@"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$");
    System.Text.RegularExpressions.MatchCollection mc = mailRegex.Matches(str);
    for(int i = 0; i<mc.Count; i++ )
    Console.WriteLine( mc[i].ToString() );
    文件里单单一个email到是能读出来
    前后加写其他东西,就读不出来

    本文地址 :CodeGo.net/1106192/
    -------------------------------------------------------------------------------------------------------------------------
    1.用正则表达式:
    1. Expression: ^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-z
    A-Z]\.)+[a-zA-Z]{2,9})$
    Description: regex to validate email address noteworthy: (1) It allows usernames with 1 or 2 alphanum characters, or 3+ chars can have -._ in the middle. username may NOT start/end with -._ or any other non alphanumeric character. (2) It allows heirarchical ...
    Matches: [ ], [ ], [ ] [ More Details]
    Non-Matches: [ ], [ ], [ ]
    2.
    Expression: ^(([A-Za-z0-9]+_+)|([A-Za-z0-9]+\-+)|([A-Za-z0-9]+\.+)|([A-Z
    a-z0-9]+\++))*[A-Za-z0-9]+@((\w+\-+)|(\w+\.))*\w{1,63}\.[a-z
    A-Z]{2,6}$
    Description: The most complete email validation routine I could come up with. It verifies that: - Only letters, numbers and email acceptable symbols (+, _, -, .) are allowed - No two different symbols may follow each other - Cannot begin with a symbol - Ending domain ...
    Matches: [g_s+ ], [ ], [jim@jim.c.dc.ca] [ More Details]
    Non-Matches: [ ], [gav@gav.c], [jim@--c.ca]
    3
    Expression: ^((?>[a-zA-Z\d!#$%&'*+\-/=?^_`{|}~]+\x20*|"((?=[\x01-\x7f])[
    ^"\\]|\\[\x01-\x7f])*"\x20*)*(?<angle><))?((?\.)(?>\?[a-zA
    -Z\d!#$%&'*+\-/=?^_`{|}~]+)+|"((?=[\x01-\x7f])[^"\\]|\\[\x01
    -\x7f])*")@(((?-)[a-zA-Z\d\-]+(?<!-)\.)+[a-zA-Z]{2,}|\[(((?
    (?<!\[)\.)(25[0-5]|2[0-4]\d|[01]?\d?\d)){4}|[a-zA-Z\d\-]*[a-
    zA-Z\d]:((?=[\x01-\x7f])[^\\\[\]]|\\[\x01-\x7f])+)\])(?(angl
    e)>)$
    Description: This accepts RFC 2822 email addresses in the form:  p;OR Blah < ; RFC 2822 email 'mailbox': mailbox = name-addr | addr-spec name-addr = [display-name] "<" addr-spec ">" addr-spec = local-pa ...
    Matches: [ ], [Name Surname < ;], ["b. blah"@blah.co.nz] [ More Details]
    Non-Matches: [name  ], [name."surname"@blah.com], [ ]
    我觉得是这样的,你的每一个email不可以和其他的字符连在一起,至少有一个空格或者说逗号割,如果是空格,你可以在正则串的开头和结尾再加一个空格。这样应该可以吧。
    2. System.Text.RegularExpressions.Regex mailRegex = new System.Text.RegularExpressions.Regex(@"[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+");
    去掉开始跟结束符号匹配,要不然就只能匹配一个email地址。
    3. using System.Text.RegularExpression;
    using System.Text.Encoding;
    StreamReader sr = new StreamReader(yourFilePath, Encoding.Default);
    string temp = sr.ReadToEnd();
    MatchCollection mc = Regex.Match(temp, "\\b[A-Z0-9._%-]+@[A-Z0-9._%-]+\\.[A-Z0-9._%-]{2,4}\\b");
    foreach(Match m in mc)
    {
    string emailStr = m.Value;
    }
    4. 用beibeilong(whylove)的思路,如果有多个邮件地址并有;或其它割符 CodeGo.net,可以用Split离到一个数组,然后循环。
    5. 把内容读出来之后,按照各种割符把这个字符串割成一个数组,对数组中的每一个元素用正则表达式来匹配
    本文标题 :看下字符搜索的代码
    本文地址 :CodeGo.net/1106192/
    1. ASP.NET按钮事件触发时后退按钮按下
    2. 如何设定DATAGRID的列名,用WINFORM?
    3. 如何解析和替换不正确出世纪的日期值在一个大的csv文件
    4. 又现datagrid问题
    5. 动态库注入失败在某些机器上?
    6. 代码(组件控件)安全问题,集思广益
    7. 如何将内存文件上传到Amazon S3吗? C#
    8. 为什么子窗体不能显示
    9. 当连接AC#asp.net web应用程序与C ++DLL在服务器或客户端端上运行的dll的代码?
    10. 问如何使用C#读取SQL Server2000种Image列的内容?

     
    

    Copyright © 2017 CodeGo.net
    http://codego.net/xinwen/ 足球比分网 足球比分 医药招商网 邵阳县新闻