导航

« vb.net 获取pr值,Alexa排名源码vb.net (2008) 多线程实例  »

  • 常用正则表达式实例 分享

Sql

正则表达式是最为高效的信息查询公式,关于它的概念不再细说,学习一样东西从简单的实例开始是最好不过的,以下收集各种实用的正则表达式,为了统一,以下内容中的“内容”为源字符串,“正则”为正则表达式,“结果”就是查询结果,将不断更新。

1.正则 获取两个字符串之间的内容(不包换界定字符串)
内容:找到相关结果146个    正则:  (?<=结果)\d*(?=个)     结果:146
@获取网页标题内容: (?<=\<title\>).* ?(?=\</title\>)   (注:红色是边界,\<title\> 代表查找<title>,就是说(?<=左边界)

2.从网址中提取主域名:
^.+\.(com.cn|com|net.cn|net|org.cn|org|gov.cn|gov|cn|mobi|me|info|name|biz|cc|tv|asia|hk|网络|公司|中国)\/

3.懒惰匹配
表达式1:(?<=links \().*?(?=\)) 表达式2: (?<=links \().*(?=\))   (注:注意红色部分的区别)
 查找内容:Pages (464)</span></li>Inlinks (562)</a>)
表达式1结果:562           表达式2结果:562)</a>   (注:表达式1中多了一个?,表示匹配尽可能少的字符)
就单单取得562这个结果也可以这样:(?<=links \().*(?=\)<)  (注:红色部分是当前唯一)
如果表达式:Inlinks \(.*?\)  则结果为 Inlinks (562)

4.多层匹配
表达式:约 (\d*?),(\d*?),(\d*?) 条
查找内容:找到约 38,000,000 条结果
结果:约 38,000,000 条  (注:可单独取出逗号隔开的数字如 38)

vb.net中实现
 

折叠ASP/Visual Basic Code复制内容到剪贴板
  1. Public Function searchE(ByVal allStr As StringByVal findStr As StringAs String '正则表达式   
  2.     Try  
  3.         Dim reg As New Regex(findStr)   
  4.   
  5.         Dim n As MatchCollection = reg.Matches(allStr)   
  6.   
  7.   
  8.         regNum = n.Count.ToString   
  9.         'Return n.Item(0).ToString   
  10.         Return n.Item(0).Groups(0).ToString() 'Item(0)一层; groups(0)二层,如多个(约 38,000,000 条)中 取38   
  11.     Catch ex As Exception   
  12.         ' MsgBox(ex)   
  13.         msgInfo("无效查询!", "")   
  14.   
  15.     End Try  
  16.     Return Nothing  
  17. End Function  

 

  • 顶一下


原创文章如转载,请注明:转载自落日故乡

本文链接地址:http://www.spersky.com/post/regularexpression.html

    发表评论:

    ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

    内容搜索

    赞助商

    常用链接

    最近发表

    Powered By Z-Blog 1.8 Walle Build 100427

    Copyright spersky All Rights Reserved.Theme Moonlihgt,Calf modified。