标签:
正则表达式Regular Expression,通常简写为regex。定义一个字符串规则主要用来
用于比较单个字符
(\之后的字母是小写表示满足条件的.
如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} 匹配n到m次之间
? 不匹配或者只匹配一次
+ 匹配一次或多次
* 匹配任意次或者不匹配
定位字符匹配语法
^ 字符串开始位置, 处理多行时表示该行开始
^^ 文件开头
$ 字符串结束位置, 处理多行时表示该行结束
$$ 文件结尾
\b 单词边界
\+元字符匹配元字符
如\. \* \\
...
\n匹配换行
\r匹配回车
\t制表符
……
条件1|条件2
满足任一条件即可
^\d{3}$|^\d{4}$
()
如(\d{1,3}\.){3}\d{1,3}表示(1到3位数字加点)重复3次然后是1到3位数字,
用于表示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的单词。
测试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));
}
}
}
例一:
整数:-?/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教程学院
标签:
原文地址:http://www.cnblogs.com/Yellow0-0River/p/4242190.html