文章关键字 ‘正则表达式’

匹配C语言风格注释的正则表达式

2011年01月2日,星期日

期末复习,差不多零点才回到宿舍。打开QQ,弹出一个半年不说一句话的群,高中班级的群。上大学以后大家都很忙吧,以至于一声问候也成了奢侈。或者说,已经不是同一个世界的人了。

群消息的内容就是问C语言注释的正则表达式,果然是无事不登三宝殿。他给的代码是:

\/\*(.|[\n])*(\*\/){1}

还说程序会一直匹配到最后一个*/,弄了半个下午没弄出来,烦死了。

这种问题Google一下不就行了么:

/\*(.|[\r\n])*?\*/

还是计算机专业的,连贪婪模式和非贪婪模式都不懂。我懂,但又怎样?

参考链接:Finding Comments in Source Code Using Regular Expressions

验证IPv4地址的正则表达式

2010年10月2日,星期六

今天看了一下《Beginning Regular Expressions》,第六章谈到了用正则表达式验证IPv4地址,记下来,以后也许会用到。

^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[09][0-9]|[1-9][0-9]|[0-9])$

用VBS枚举素数(质数)

2010年10月1日,星期五

看到标题你一定会不屑一顾,枚举质数谁不会?

For i = 1 To 100
	For j = 2 To i
		If i Mod j = 0 Then Exit For
	Next
	If j = i Then WScript.Echo i
Next

几行代码就能搞定,如此简单。那就看看下面这个程序吧!

Set regex = New RegExp
regex.Pattern = "^1?$|^(11+?)\1+$"
For i = 1 To 100
	If Not regex.Test(String(i,"1")) Then
		WScript.Echo i
	End If
Next

用正则表达式判断质数,神一样的人物。

参考链接:

  1. 检查素数的正则表达式
  2. 用 JS 枚举质数