码迷,mamicode.com
首页 > 其他好文 > 详细

正则表达式Regular Expression

时间:2015-01-22 19:45:57      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:

第一部分 简介

正则表达式Regular Expression,通常简写为regex。定义一个字符串规则主要用来

  1. 判断字符串是否是或含有符合regex定义的规则的字符串。 Regex.IsMatch
  2. 获取字符串中符合regex定义的规则的字符串。Regex.Match
  3. 替换字符串中符合regex定义的规则的字符串。Regex.Replace

第二部分 语法

  1. 字符匹配语法 
  2. 重复匹配语法
  3. 字符定位语法
  4. 转义匹配语法
  • 字符匹配语法

    用于比较单个字符

    (\之后的字母是小写表示满足条件的.

    d=digit, 大写则表明不满足D=digit

      w=word

      s= space

    )

    \d 匹配数字

    \D 匹配非数字

    \w 匹配0-9 a-z A-Z其中任意,相当于【0-9a-zA-Z

    \W 匹配非\w   相当于【……0-9a-zA-Z

    \s 空白字符即空格

    \S 非空格

    . 任意

    [] 匹配括号中任一个字符

    [^] 字符不是括号中的任一个字符

     

  • 重复匹配语法

    跟在字符匹配语法后,表明 比较单字符多少次,可以用来比较一串连续的字符

    {n} 匹配字符n

    \d{3} = \d\d\d

    {n,} 匹配字符n+

    {n,m} 匹配nm次之间

    ? 不匹配或者只匹配一次

    + 匹配一次或多次

    * 匹配任意次或者不匹配

     

  • 字符定位语法

    定位字符匹配语法

    ^ 字符串开始位置,  处理多行时表示该行开始

    ^^ 文件开头

    字符串结束位置,  处理多行时表示该行结束

    $$ 文件结尾

    \b 单词边界

    \+元字符匹配元字符

    \.    \*    \\

    ...

 

  • 转义匹配语法

    \n匹配换行

    \r匹配回车

    \t制表符

    ……

     

  • 分支条件

    条件1|条件2

    满足任一条件即可

    ^\d{3}$|^\d{4}$

 

  • 分组

    ()

    (\d{1,3}\.){3}\d{1,3}表示(13位数字加点)重复3然后是13位数字,

    用于表示ip地址。如 192.168.0.29

    小括号也可以用来注释

    (?#comment)

    2[0-4]\d(?#200-249)

 

  • 后向引用

()()()    即之前的分组内容之后可以用 \1 \2 \3 来表示

 

  • 零宽断言

(?=exp) 结尾匹配exp

 

  • 负向零宽断言

    (?!exp) 此位置之后不能是exp

    \d{3}(?!\d)匹配三位数字,而且这三位数字的后面不能是数字;

    \b((?!abc)\w)+\b匹配不包含连续字符串abc的单词。

 

第三部分 regex学习测试方法(u3d)

 

测试text是否符合pattern的规则,赋予result

using UnityEngine;

using System.Collections;

using System.Text.RegularExpressions;

public class testString : MonoBehaviour {

    public string pattern; 

    public string text;

    void OnGUI () {

        if(GUI.Button(new Rect(0,0,100,100),"Check"))

        {

            Regex myReg = new Regex(string.Format(@"{0}",pattern));

            bool reslut = myReg.IsMatch(text);

            print(string.Format("Pattern: {0}     String: {1}     Result: {2}",pattern,text,reslut));

        }

    }

}

 

第四部分 c#例子

例一:

整数:-?/d+$

 

例二:

账号输入格式判断:3-16位字母数字@_. (可用邮箱)

 Regex.IsMatch(text,@"^[a-zA-Z0-9@_.]{3,13}$");

 

例三:

密码输入格式判断:3-16位字母或数字

 Regex.IsMatch(text,@"^[a-zA-Z0-9]{3,13}$");

 

例四:

名字输入格式判断:2~6个中文,或4~12个英文字母或者数字

return Regex.IsMatch(text,@"^(([\u4e00-\u9fa5])|([a-zA-Z0-9]{1,2})){2,6}$");

 

转载自风宇冲Unity3D教程学院

正则表达式Regular Expression

标签:

原文地址:http://www.cnblogs.com/Yellow0-0River/p/4242190.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!