All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
总结asp.net回发或回调参数无效解决方法_[Asp.Net教程]
解决方案:MS,SQL数据库的连接处理问题_[SQL,Server教程]
jQuery事件总结_[AJAX教程]
SQL2005其中三个版本的比较_[SQL,Server教程]
asp.net2.0网站语法之数据绑定语法
php中加入播放flv视频代码_php资料_编程技术
AspNet2.0页面生命周期_[Asp.Net教程]
用数据库生成不重复的流水号_[SQL,Server教程]
SQL,Prompt:SQL智能完成工具_[SQL,Server教程]
ASP.NET通过IE直接打印_[Asp.Net教程]
Reading number is top 10 pictures
住院一星期,检测费两万
The wise woman of chest2
The money of more than 100 countries and regions12
关于海盗的研究
The real super beauty1
Entered the goddess in the AD1
乳娘帕梅拉安德森5
The goddess of the single reason1
9.3阅兵全景图4-陸海空现代化兵种方阵梯队
9.3阅兵全景图2-英雄连队梯队和外国方阵梯队
Download software ranking
C#COM编程指南
WebService在.NET中的实战应用教学视频 → 第3集
少妇苏霞全本
Tram sex maniac 2 (H) rar bag4
Ashlynn Video3
功夫熊猫2(上集)
Unix video tutorial12
圣殿祭司的ASP.NET.2.0.开发详解-使用C#
Boxer Classic video1
Jinling thirteen stock
delv published in(发表于) 2014/1/27 6:49:12 Edit(编辑)
C#,中的常用正则表达式总结_[Asp.Net教程]

C#,中的常用正则表达式总结_[Asp.Net教程]

C# 中的常用正则表达式总结_[Asp.Net教程]

  这是我发了不少时间整理的C#的正则表达式,新手朋友注意一定要手册一下哦,这样可以节省很多写代码的时间,设计家园为新手朋友整理发布。


  只能输入数字:"^[0-9]*"。


  只能输入n位的数字:"^\d{n}"。


  只能输入至少n位的数字:"^\d{n,}"。


  只能输入m~n位的数字:。"^\d{m,n}"


  只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)"。


  只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?"。


  只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?"。


  只能输入非零的正整数:"^\+?[1-9][0-9]*"。


  只能输入非零的负整数:"^\-[1-9][]0-9"*。


  只能输入长度为3的字符:"^.{3}"。


  只能输入由26个英文字母组成的字符串:"^[A-Za-z]+"。


  只能输入由26个大写英文字母组成的字符串:"^[A-Z]+"。


  只能输入由26个小写英文字母组成的字符串:"^[a-z]+"。


  只能输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+"。


  只能输入由数字、26个英文字母或者下划线组成的字符串:"^\w+"。


  验证用户密码:"^[a-zA-Z]\w{5,17}"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。


  验证是否含有^%&’,;=?\"等字符:"[^%&’,;=?\x22]+"。


  只能输入汉字:"^[\u4e00-\u9fa5]{0,}"


  验证Email地址:"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"。


  验证InternetURL:"^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?"。


  验证电话号码:"^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}"正确格式为:"XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX"。


  验证身份证号(15位或18位数字):"^\d{15}|\d{18}"。


  验证一年的12个月:"^(0?[1-9]|1[0-2])"正确格式为:"01"~"09"和"1"~"12"。


  验证一个月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)"正确格式为;"01"~"09"和"1"~"31"。


  利用正则表达式限制网页表单里的文本框输入内容:


  用正则表达式限制只能输入中文:onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,’’)" onbeforepaste="clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^\u4E00-\u9FA5]/g,’’))"


  用正则表达式限制只能输入全角字符: onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,’’)" onbeforepaste="clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^\uFF00-\uFFFF]/g,’’))"


  用正则表达式限制只能输入数字:onkeyup="value=value.replace(/[^\d]/g,’’) "onbeforepaste="clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^\d]/g,’’))"


  用正则表达式限制只能输入数字和英文:onkeyup="value=value.replace(/[\W]/g,’’) "onbeforepaste="clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^\d]/g,’’))"


  得用正则表达式从URL地址中提取文件名的javascript程序,如下结果为page1



以下是引用片段:
  s="http://www.9499.net/page1.htm"
  s=s.replace(/(.*\/){0,}([^\.]+).*/ig,"2")
  alert(s)


  匹配双字节字符(包括汉字在内):[^\x00-\xff]


  应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)



以下是引用片段:
  String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;}


  匹配空行的正则表达式:\n[\s| ]*\r


  匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/


  匹配首尾空格的正则表达式:(^\s*)|(\s*)



以下是引用片段:
  String.prototype.trim = function()
  {
  return this.replace(/(^\s*)|(\s*)/g, "");
  }


  利用正则表达式分解和转换IP地址:


  下面是利用正则表达式匹配IP地址,并将IP地址转换成对应数值的Javascript程序:



以下是引用片段:
  function IP2V(ip)
  {
  re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //匹配IP地址的正则表达式
  if(re.test(ip))
  {
  return RegExp.1*Math.pow(255,3))+RegExp.2*Math.pow(255,2))+RegExp.3*255+RegExp.4*1
  }
  else
  {
  throw new Error("Not a valid IP address!")
  }
  }



以下是引用片段:
  var ip="10.100.20.168"
  ip=ip.split(".")
  alert("IP值是:"+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))


  符号解释:


  \


  将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,’n’ 匹配字符 "n"。’\n’ 匹配一个换行符。序列 ’\\’ 匹配 "\" 而 "\(" 则匹配 "("。


  ^


  匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 ’\n’ 或 ’\r’ 之后的位置。


  


  匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性, 也匹配 ’\n’ 或 ’\r’ 之前的位置。


  *


  匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。


  +


  匹配前面的子表达式一次或多次。例如,’zo+’ 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。


  ?


  匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 中的"do" 。? 等价于 {0,1}。


  {n}


  n 是一个非负整数。匹配确定的 n 次。例如,’o{2}’ 不能匹配 "Bob" 中的 ’o’,但是能匹配 "food" 中的两个 o。


  {n,}


  n 是一个非负整数。至少匹配n 次。例如,’o{2,}’ 不能匹配 "Bob" 中的 ’o’,但能匹配 "foooood" 中的所有 o。’o{1,}’ 等价于 ’o+’。’o{0,}’ 则等价于 ’o*’。


  {n,m}


  m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o{1,3}" 将匹配 "fooooood" 中的前三个 o。’o{0,1}’ 等价于 ’o?’。请注意在逗号和两个数之间不能有空格。


  ?


  当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串 "oooo",’o+?’ 将匹配单个 "o",而 ’o+’ 将匹配所有 ’o’。


  .


  匹配除 "\n" 之外的任何单个字符。要匹配包括 ’\n’ 在内的任何字符,请使用象 ’[.\n]’ 的模式。


  (pattern)


  匹配 pattern 并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到,在VBScript 中使用 SubMatches 集合,在JScript 中则使用 0…9 属性。要匹配圆括号字符,请使用 ’\(’ 或 ’\)’。


  (?:pattern)


  匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用 "或" 字符 (|) 来组合一个模式的各个部分是很有用。例如, ’industr(?:y|ies) 就是一个比 ’industry|industries’ 更简略的表达式。


  (?=pattern)


  正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,’Windows (?=95|98|NT|2000)’ 能匹配 "Windows 2000" 中的 "Windows" ,但不能匹配 "Windows 3.1" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。


  (?!pattern)


  负向预查,在任何不匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如’Windows (?!95|98|NT|2000)’ 能匹配 "Windows 3.1" 中的 "Windows",但不能匹配 "Windows 2000" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始


  x|y


  匹配 x 或 y。例如,’z|food’ 能匹配 "z" 或 "food"。’(z|f)ood’ 则匹配 "zood" 或 "food"。


  [xyz]


  字符集合。匹配所包含的任意一个字符。例如, ’[abc]’ 可以匹配 "plain" 中的 ’a’。


  [^xyz]


  负值字符集合。匹配未包含的任意字符。例如, ’[^abc]’ 可以匹配 "plain" 中的’p’。


  [a-z]


  字符范围。匹配指定范围内的任意字符。例如,’[a-z]’ 可以匹配 ’a’ 到 ’z’ 范围内的任意小写字母字符。


  [^a-z]


  负值字符范围。匹配任何不在指定范围内的任意字符。例如,’[^a-z]’ 可以匹配任何不在 ’a’ 到 ’z’ 范围内的任意字符。


  \b


  匹配一个单词边界,也就是指单词和空格间的位置。例如, ’er\b’ 可以匹配"never" 中的 ’er’,但不能匹配 "verb" 中的 ’er’。


  \B


  匹配非单词边界。’er\B’ 能匹配 "verb" 中的 ’er’,但不能匹配 "never" 中的 ’er’。



以下是引用片段:
  var ip="10.100.20.168"
  ip=ip.split(".")
  alert("IP值是:"+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))


  符号解释:


  \


  将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,’n’ 匹配字符 "n"。’\n’ 匹配一个换行符。序列 ’\\’ 匹配 "\" 而 "\(" 则匹配 "("。


  ^


  匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 ’\n’ 或 ’\r’ 之后的位置。


  


  匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性, 也匹配 ’\n’ 或 ’\r’ 之前的位置。


  *


  匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。


  +


  匹配前面的子表达式一次或多次。例如,’zo+’ 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。


  ?


  匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 中的"do" 。? 等价于 {0,1}。


  {n}


  n 是一个非负整数。匹配确定的 n 次。例如,’o{2}’ 不能匹配 "Bob" 中的 ’o’,但是能匹配 "food" 中的两个 o。


  {n,}


  n 是一个非负整数。至少匹配n 次。例如,’o{2,}’ 不能匹配 "Bob" 中的 ’o’,但能匹配 "foooood" 中的所有 o。’o{1,}’ 等价于 ’o+’。’o{0,}’ 则等价于 ’o*’。


  {n,m}


  m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o{1,3}" 将匹配 "fooooood" 中的前三个 o。’o{0,1}’ 等价于 ’o?’。请注意在逗号和两个数之间不能有空格。


  ?


  当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串 "oooo",’o+?’ 将匹配单个 "o",而 ’o+’ 将匹配所有 ’o’。


  .


  匹配除 "\n" 之外的任何单个字符。要匹配包括 ’\n’ 在内的任何字符,请使用象 ’[.\n]’ 的模式。


  (pattern)


  匹配 pattern 并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到,在VBScript 中使用 SubMatches 集合,在JScript 中则使用 0…9 属性。要匹配圆括号字符,请使用 ’\(’ 或 ’\)’。


  (?:pattern)


  匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用 "或" 字符 (|) 来组合一个模式的各个部分是很有用。例如, ’industr(?:y|ies) 就是一个比 ’industry|industries’ 更简略的表达式。


  (?=pattern)


  正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,’Windows (?=95|98|NT|2000)’ 能匹配 "Windows 2000" 中的 "Windows" ,但不能匹配 "Windows 3.1" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。


  (?!pattern)


  负向预查,在任何不匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如’Windows (?!95|98|NT|2000)’ 能匹配 "Windows 3.1" 中的 "Windows",但不能匹配 "Windows 2000" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始


  x|y


  匹配 x 或 y。例如,’z|food’ 能匹配 "z" 或 "food"。’(z|f)ood’ 则匹配 "zood" 或 "food"。


  [xyz]


  字符集合。匹配所包含的任意一个字符。例如, ’[abc]’ 可以匹配 "plain" 中的 ’a’。


  [^xyz]


  负值字符集合。匹配未包含的任意字符。例如, ’[^abc]’ 可以匹配 "plain" 中的’p’。


  [a-z]


  字符范围。匹配指定范围内的任意字符。例如,’[a-z]’ 可以匹配 ’a’ 到 ’z’ 范围内的任意小写字母字符。


  [^a-z]


  负值字符范围。匹配任何不在指定范围内的任意字符。例如,’[^a-z]’ 可以匹配任何不在 ’a’ 到 ’z’ 范围内的任意字符。


  \b


  匹配一个单词边界,也就是指单词和空格间的位置。例如, ’er\b’ 可以匹配"never" 中的 ’er’,但不能匹配 "verb" 中的 ’er’。


  \B


  匹配非单词边界。’er\B’ 能匹配 "verb" 中的 ’er’,但不能匹配 "never" 中的 ’er’。


  出处: 中国自学编程网







添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.