C# 中的常用正则表达式总结.docx

上传人:b****6 文档编号:16471163 上传时间:2023-07-13 格式:DOCX 页数:9 大小:19.13KB
下载 相关 举报
C# 中的常用正则表达式总结.docx_第1页
第1页 / 共9页
C# 中的常用正则表达式总结.docx_第2页
第2页 / 共9页
C# 中的常用正则表达式总结.docx_第3页
第3页 / 共9页
C# 中的常用正则表达式总结.docx_第4页
第4页 / 共9页
C# 中的常用正则表达式总结.docx_第5页
第5页 / 共9页
C# 中的常用正则表达式总结.docx_第6页
第6页 / 共9页
C# 中的常用正则表达式总结.docx_第7页
第7页 / 共9页
C# 中的常用正则表达式总结.docx_第8页
第8页 / 共9页
C# 中的常用正则表达式总结.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C# 中的常用正则表达式总结.docx

《C# 中的常用正则表达式总结.docx》由会员分享,可在线阅读,更多相关《C# 中的常用正则表达式总结.docx(9页珍藏版)》请在冰点文库上搜索。

C# 中的常用正则表达式总结.docx

C#中的常用正则表达式总结

C#中的常用正则表达式总结

这是我发了不少时间整理的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="

  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!

")

  }

  }

不过上面的程序如果不用正则表达式,而直接用split函数来分解可能更简单,程序如下:

以下是引用片段:

  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)’能匹配"Windows2000"中的"Windows",但不能匹配"Windows3.1"中的"Windows"。

预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。

  (?

!

pattern)

  负向预查,在任何不匹配pattern的字符串开始处匹配查找字符串。

这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。

例如’Windows(?

!

95|98|NT|2000)’能匹配"Windows3.1"中的"Windows",但不能匹配"Windows2000"中的"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’

\cx

  匹配由x指明的控制字符。

例如,\cM匹配一个Control-M或回车符。

x的值必须为A-Z或a-z之一。

否则,将c视为一个原义的’c’字符。

  \d

  匹配一个数字字符。

等价于[0-9]。

  \D

  匹配一个非数字字符。

等价于[^0-9]。

  \f

  匹配一个换页符。

等价于\x0c和\cL。

  \n

  匹配一个换行符。

等价于\x0a和\cJ。

  \r

  匹配一个回车符。

等价于\x0d和\cM。

  \s

  匹配任何空白字符,包括空格、制表符、换页符等等。

等价于[\f\n\r\t\v]。

  \S

  匹配任何非空白字符。

等价于[^\f\n\r\t\v]。

  \t

  匹配一个制表符。

等价于\x09和\cI。

  \v

  匹配一个垂直制表符。

等价于\x0b和\cK。

  \w

  匹配包括下划线的任何单词字符。

等价于’[A-Za-z0-9_]’。

  \W

  匹配任何非单词字符。

等价于’[^A-Za-z0-9_]’。

  \xn

  匹配n,其中n为十六进制转义值。

十六进制转义值必须为确定的两个数字长。

例如,’\x41’匹配"A"。

’\x041’则等价于’\x04’&"1"。

正则表达式中可以使用ASCII编码。

.

  \num

  匹配num,其中num是一个正整数。

对所获取的匹配的引用。

例如,’(.)\1’匹配两个连续的相同字符。

  \n

  标识一个八进制转义值或一个向后引用。

如果\n之前至少n个获取的子表达式,则n为向后引用。

否则,如果n为八进制数字(0-7),则n为一个八进制转义值。

  \nm

  标识一个八进制转义值或一个向后引用。

如果\nm之前至少有nm个获得子表达式,则nm为向后引用。

如果\nm之前至少有n个获取,则n为一个后跟文字m的向后引用。

如果前面的条件都不满足,若n和m均为八进制数字(0-7),则\nm将匹配八进制转义值nm。

  \nml

  如果n为八进制数字(0-3),且m和l均为八进制数字(0-7),则匹配八进制转义值nml。

  \un

  匹配n,其中n是一个用四个十六进制数字表示的Unicode字符。

例如,\u00A9匹配版权符号(?

)。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2