正则表达式

  转自 http://deerchao.net/tutorials/regex/regex.htm#intr oduction 开始--运行--gpedit.msc--"本地计算机"策略--用户配置--Windows设置--脚本(登陆/注销)--右测点登陆,
  然后填入脚本路径。
  在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述
  这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。
  元字符
  1. \b单词的开头或结尾,也就是单词的分界处。
  2. .匹配除了换行符以外的任意字符。
  3. *它代表的不是字符,也不是位置,而是数量--它指定*前边的内容可以连续重复使用任意次以使整个表达
  式得到匹配。
  .*连在一起就意味着任意数量的不包含换行的字符。 \n 换行符
  4. \d匹配一位数字。 d\+匹配一位以上数字,d\*匹配0位或多位。
  5. \s匹配任意的空白符。包括空格,制表符(Tab),换行符,中文全角空格等。
  6. \w匹配字母、数字、下划线、汉字等。
  7. ^字符串的开始
  8. $字符串的结束
  反义
  1. \B匹配不是以单词开头或结束的位置
  2. \D任意非数字的字符
  3. \S任意不是空白符的字符
  4. \W匹配任意不是字母、数字、下划线、汉字的字符
  5. [^x]匹配除x以外的任意字符
  元字符转义
  \ www.sohu.com 写成 www\.sohu\.com
  分组
  () 小括号来指定子表达式(也叫做分组)
  重复
  1. *重复0次或多次
  2. +重复1次或多次
  3. ?重复0次或1次
  4. {n}重复n次
  5. {n,}重复n次或更多次
  6. {n,m}重复n次到m次
  分支条件
  | 用|把不同的规则分隔开。
  后向引用
  \1代表分组1匹配的文本。\b(\w+)\b\s+\1\b可以用来匹配重复的单词。与这个同:\b(?\w+)
  \b\s+\k\b
  捕获
  (exp) 匹配exp,并捕获文本到自动命名的组里
  (?exp) 匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name'exp)
  (?:exp) 匹配exp,不捕获匹配的文本,也不给此分组分配组号
  零宽断言 (?=exp) 匹配exp前面的位置
  (?正则表达式的处理产生任何影响,用于提供注释让人阅读
  懒惰限定符
  *? 重复任意次,但尽可能少重复
  +? 重复1次或更多次,但尽可能少重复
  ?? 重复0次或1次,但尽可能少重复
  {n,m}? 重复n到m次,但尽可能少重复
  {n,}? 重复n次以上,但尽可能少重复
  举例
  1.\bsearchword\b
  2. 0\d\d-\d\d\d\d\d\d\d\d匹配这样的字符串:以0开头,然后是两个数字,然后是一个连字号"-",最后是8
  个数字,也就是中国的电话号码。
  0\d{2}-\d{8}, 这里\d后面的{2}({8})的意思是前面\d必须连续重复匹配2次(8次)。
  3. ^\d{5,12}$,5位到12位数字。
  4. win\d+ win后面跟一个或多个数字
  5. ^\w+ 匹配一行的第一个单词
  6. [aeiou]匹配任何一个英文元音字母;[^aeiou] 匹配除了aeiou这几个字母以外的任意字符。
  6. [.?!]匹配标点符号(.或?或!)
  7. [0-9]代表的含意与\d就是完全一致的:一位数字
  8. [a-z0-9A-Z_]也完全等同于\w(如果只考虑英文的话)
  9. \(?0\d{2}[) -]?\d{8}。
  "("和")"也是元字符。
  这个表达式可以匹配几种格式的电话号码,像(010)88886666,或022-22334455,或02912345678等。我们对它进
  行一些分析吧:首先是一个转义字符\(,它能出现0次或1次(?),然后是一个0,后面跟着2个数字(\d{2}),然后是
  )或-或空格中的一个,它出现1次或不出现(?),最后是8个数字(\d{8})。
  但是也能匹配010)12345678或(022-87654321这样的"不正确"的格式。
  10. 0\d{2}-\d{8}|0\d{3}-\d{7}
  能匹配两种以连字号分隔的电话号码:一种是三位区号,8位本地号(如010-12345678),一种是4位区号,7位本
  地号(0376-2233445)。
  11.\(0\d{2}\)[- ]?\d{8}|0\d{2}[- ]?\d{8}
  这个表达式匹配3位区号的电话号码,其中区号可以用小括号括起来,也可以不用,区号与本地号间可以用连字
  号或空格间隔,也可以没有间隔。
  12.\d{5}-\d{4}|\d{5}
  这个表达式用于匹配美国的邮政编码。美国邮编的规则是5位数字,或者用连字号间隔的9位数字。之所以要给出
  这个例子是因为它能说明一个问题:使用分枝条件时,要注意各个条件的顺序。
  如果你把它改成\d{5}|\d{5}-\d{4}的话,那么就只会匹配5位的邮编(以及9位邮编的前5位)。原因是匹配分枝条
  件时,将会从左到右地测试每个条件,如果满足了某个分枝的话,就不会去再管其它的条件了。
  12. IP地址:((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0 -5]|[01]?\d\d?)。
  最大为255
  13. \S+匹配不包含空白符的字符串。
  14. ]+>匹配用尖括号括起来的以a开头的字符串。是,不是。a[^>]意思是a之后不能马上跟着>。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值