1.正则表达式是一种模式匹配工具,用于判定其它元素是否符合它 2.Regex类包含若干静态
方法,用正则表达式进行字符串匹配。 常用
方法:Match 使用
方法:public static Match Match(string input,string pattern),pattern表示一个正则表达式 引用using System.Text.RegularExpressions string input="zhangsan@gmail.com"; string patten=@"[a-zA-Z]+@[a-zA-Z]+\.com$"; //正则表达式 Regex r=new Regex(patten); Match m=r.Match(input) if(m.success)console.writeline(m.value) else{console.writeline("
错误");} 3.字 符 描 述 \ 转义字符,将一个具有特殊
功能的字符转义为一个普通字符,或反过来 ^ 匹配输入字符串的开始位置 $ 匹配输入字符串的结束位置 * 匹配前面的零次或多次的子表达式 + 匹 字 符 描 述 \ 转义字符,将一个具有特殊
功能的字符转义为一个普通字符,或反过来 ^ 匹配输入字符串的开始位置 $ 匹配输入字符串的结束位置 * 匹配前面的零次或多次的子表达式 + 匹配前面的一次或多次的子表达式 ? 匹配前面的零次或一次的子表达式 {n} n是一个非负整数,匹配前面的n次子表达式 {n,} n是一个非负整数,至少匹配前面的n次子表达式 {n,m} m和n均为非负整数,其中n<=m,最少匹配n次且最多匹配m次 ? 当该字符紧跟在其他限制符(*,+,?,{n},{n,},{n,m})后面时, 匹配模式尽可能少的匹配所
搜索的字符串 . 匹配除“\n”之外的任何单个字符 (pattern) 匹配pattern并
获取这一匹配 (?:pattern) 匹配pattern但不
获取匹配结果 (?=pattern) 正向预查,在任何匹配pattern的字符串开始处匹配查找字符串 (?!pattern) 负向预查,在任何不匹配pattern的字符串开始处匹配查找字符串 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 匹配一个单词边界,指单词和空格间的位置 \B 匹配非单词边界 \d 匹配一个数字字符,等价于[0-9] \D 匹配一个非数字字符,等价于[^0-9] \f 匹配一个换页符 \n 匹配一个换行符 \r 匹配一个回车符 \s 匹配任何空白字符,
包括空格、制表符、换页符等 \S 匹配任何非空白字符 \t 匹配一个制表符 \v 匹配一个垂直制表符。等价于\x0b和\cK \w 匹配
包括下划线的任何单词字符。等价于‘'[A-Za-z0-9_]’ \W 匹配任何非单词字符。等价于‘[^A-Za-z0-9_]’ 下面给出一些常用的正则表达式,这些都利用了上表构造正则表达式的技术。 (1)“^The”:匹配所有以“The”开始的字符串,如“There”、“Thecat”等。 (2)“he$”:匹配所有以“he”结尾的字符串,如“he”、“she”等。 (3)“ab*”:匹配有一个a后面跟着零个或若干个b的字符串,如“a”、“ab”、“abbb”,……。 (4)“ab+”:匹配有一个a后面跟着至少一个或者更多个b的字符串,如“ab”、“abbb”……。 (5)“ab?”:匹配有一个a后面跟着零个或者一个b的字符串,
包括“a”、“ab”。 (6)“a?b+$”:匹配在字符串的末尾有零个或一个a跟着一个或几个b的字符串。 (7)“ab{2}”:匹配有一个a跟着两个b的字符串,即“abb”。 (8)“ab{2,}”:匹配有一个a跟着至少两个b的字符串,如“abb” 、“abbb”。 (9)“ab{3,5}”:匹配有一个a跟着3到5个b的字符串,如“abbb” 、“abbbb”。 (10)“hi|hello”:匹配包含“hi”或者“hello”的字符串。 (11)“(b|cd)ef”:表示“bef”或“cdef”。 (12)“a.[0-9]”:匹配有一个“a”后面跟着一个任意字符和一个数字的字符串。 (13)“^.{3}$”:匹配有任意三个字符的字符串。 (14)“[ab]”:表示一个字符串有一个“a”或“b”,相当于“a?b”。 (15)“[a-d]”:表示一个字符串包含小写的'a'到'd'中的一个,相当于“a?b?c?d”或者“[abcd]”。 (16)“^[a-zA-Z]”:表示一个以字母开头的字符串。 (17)“[0-9]%”:表示一个百分号前有一位数字。 (18)“,[a-zA-Z0-9]$”:表示一个字符串以一个逗号后面跟着一个字母或数字结束 4.验证URL是否合法 string patten=@"^http://(www\.){0,1}.+\.(com|net|cn)$"; ^http:// 表示已http://开头 (www\.)? 表示随后应该包含0-1个www .+表示任意字符串 \. 表示一个. (com|net|cn)$ 以com,net,org结尾 5.匹配正则示例: using System.Text.RegularExpression; class program { static void Main(string[] args) { string strUrl="http://www.
PHP.net"; string patten=@"^http://(www\.)(0,1).+\.(com|net|cn)$"; Regex r=new Regex(patten); Match m=r.Match(strUrl); if(m.success) { console.WriteLine("次网址的格式正确"); } else{ console.writeline("此网址格式有误"); } } } 验证输入是否为非负数patten=@"^\d+$"; 验证输入是否为正整数patten=@"^[0-9]*[1-9][0-9]*$"; 验证输入的是否为26个英
文字母组成的字符串 patten=@"^[A-Za-z]+$"; 验证输入是否是合法的Email地址patten=@"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"; 验证合法的身份证号码 patten=@"^\d{15}|\d{18}$"; 验证输入的电话号码格式patten=@"^(\(\d{3,4}-)|\d{3.4}-)?\d(7,8)$"; 验证只能输入汉字 patten=@"^[\ue00-\u9fa5]{0,}$"; 使用正则表达式
去除Html
标记和空格 6.字符串 compare()
方法,比较两个字符串对象 ,6种重载 int compare(string strA,string strB) int compare(string strA,string strB,bool ignorCase); int compare(string strA,string strB,bool ignorCase,cultureinfo) int compare(string strA,int indexA,int indexB,int length,bool ignorCase) int compare(string strA,int index,System.Globalization.CultureInfo culture) strA和strB:待比较字符串 ignorCase:指定考虑是否大小写,取true false indexA,indexB,当比较两个字串的时候,字串的起始位置 length:待比较字符串最大长度 culture:字符串的区域性信息 compare()返回值表:A小于B 返回负数,0,正整数 compareTo()
方法,将当前字符串对象与另一个字符串对象作比较 compareTo()不是静态
方法,没有重载形式,只能按照大小写敏感方式比较两个串 strA.CompareTo(StrB); Equals()
方法 public bool Equals(string)
用法:strA.Equals(strB) public static bool Equals(string,string)
用法:比较两个字符串的值 比较运算符:也可以用==,!=比较两个字符串 格式化字符串 Format() public static string Format(string format,params object[] args) 用后面的参数替代前面的{0,1,2}等 string.Format("当前日期为:{0:yyyy-MM-dd}",system.datetime.now); 0:后面表示
输出格式 连接字符串: concat()和join() concat()
方法用于连接两个或者多个字符串 newstr=string.concat(strA," ",strB);
输出A B join
方法 string[] arr={strA,strB}; string.join("^^",arr);那么arr数组中的每个元素之间都用^^连接 连接字符串“+” strA+" "+strB 分割字符串 split()字符串分割 newstr="Hello^^world" char separator={'^'}; string[] splitstring=new string[100]; splitstring=newstr.split(separator); int i=0; while(i<splitstrings.Length) {console.writeline("字符串{0}:{1}",i,splitstring[i]); i++;} 插入字符串 insert()
方法,并且使用PadLeft/PadRight可以在一个字符串的左右两侧进行字符填充 public string Insert(int startindex,string value) strA.insert(1,strB);从1位置插入字符串B strA.PadLeft(20,'*')左侧填充字符,如果只有一个参数,那默认的就是空格
删除字符串 Remove()
方法可以在任意位置
删除任意长度 也可以使用Trim/Trimend/TrimStart() Remove从指定字符串开始,
删除指定
数量字符 public string Remove(int startindex,int count) strA.Remove(1,3)从第一个位置
删除3个字符 Trim/TrimStart/TrimEnd
方法 去掉字符串首尾字符的空格用strA.Trim(); public string Trim(params char[] trimChars) 去掉字符串中存在于数组中的字符 遍历字符串 StartWith/EndsWith()判定字符串对象是否以另一个子字符串开头,返回true,false StrA.StartsWith("eh") indexof/lastindexof用于
搜索一个字符串中,某个特定字符或者字符串第一次出现的位置,区分大小写,首字母以0计数 重载 int indexof(char value) int indexof(char value,int startindex) int indexof(char value,int startindex,int count) lastindexof用于
搜索一个字符串中,某个特定子串或字串最后一次出现的位置 indexofAny/lastindexofAny 与indexof类型,但是indexof查出第一个出现的位置,indexofany查出所有位置 复制字符串 copy()和copyTo(),可以完成对一个字符串及其一部分的复制操作 public static string copy(string str); 例如string newStr=string.copy(StrA); copyTo实现copy的
功能,但是更丰富,可以复制源字符串中的一部分到一个字符数组中。 public void CopyTo(int sourceIndex,char[] destination,int detination,int count) soureindex 需要复制字符起始位置,char[] 目标字符串数组,destination制定目标数组中的开始存放位置;count指定要复制的字符个数 大小写转换 ToUpper()和ToLower() 7.stringBuilder类 动态字符串,是指可以
修改字符串时,系统不需要创建新的对象。
属性 capacity chars length maxcapacity
方法 Append,AppendFormat,Equals,Insert,Remove,Replace 追加字符串 Append()
方法 public stringBuilder Append(object value) sb2.Append(" World") AppendFormat()一样的
用法 sb5.AppendFormat("{0:yyyy-mm-dd}",Time) 插入字符串 public stringBuilder insert(int index,object value) 要插入字符串的位置与
内容 Remove(int startindex,int length)
原文链接:https://www.f2er.com/regex/362761.html