using System.Text.RegularExpressions;
# 锚点
- ^:起始位置 以/^http:/为起始的字符串
- $ : 匹配结尾位置 以/.jpg$/结尾的字符串
- \b : 单词边界 /\bis\b/
- 字符类
- . :任一字符(换行除外)
- . 除了一个\n以外的任意单个字符 如: a.b
# 元字符
- ^、$、\b
- \d:0-9数字
- \D:[^\d]非数字
- \s:空白符
- \S:[^\s]
- \w:[A-Za-z0-9_]组成单词字符或程序中变量字符
- \W:[^\w]非单词字符
# 量词
- {m,n}:m到n次
- *: {0,}0到任意次
- ?: {0,1}0到1次
- +: {1,}1到任意次
# 转义符
- \
# 多选分支
- |或
- 正则表达式中,量词的贪婪模式与惰性模式有什么区别?
- 书写区别:
- 属于贪婪模式的量词,包括: “{m,n}”、“{m,}”、“?”、“*”和“+”。
- 在贪婪模式的量词后加上“?”,即变成非贪婪模式的量词,包括: “{m,n}?”、“{m,}?”、“??”、“*?”和“+?”。
- 贪婪模式——在匹配成功的前提下,尽可能多的去匹配
- 惰性模式——在匹配成功的前提下,尽可能少的去匹配
# 简写
- [0-9]=\d
- \D表示不包含[0-9]
- [a-zA-Z0-9中文下划线]=\w
- \W表示不包含[a-zA-Z0-9中文下划线]
- \s=不可见字符空格回车 tab 制表符
- \S=可见字符空格回车 tab 制表符
- [\d \D]=[\s \S]=[\w \W] 任意单个字符
rege.ismatch(num,@“^\\d{11}”)
rege.ismatch(num,@“^\\d{11}”,regexOptions.ECMAScript)
1
2
2
- 字符串一般提取不加^$
match match=regex.match(msg,"[^@]+")
matchcollection matchs=regex.matchs(msg,"[0-9]+")
1
2
2
- 循环匹配的组的值
match match=regex.match(msg,"[0-9]+")
match.group
1
2
2
- \b \b单词边界
# 环视
- (?<= a)左边=a
- (?<!= a)左边=!a
- (?!= b)右边=!b
- (?= b)右边=b ==环视不会"占用"字符位置的,可以理解为 『它占用的位置信息,而不是位置上的字符』==
# 引用分组
- \1 第一组
- \2第二组
- \3第三组
- $1第一组
regex.replace(mag,@"(.)\1+","$1")
← 集合 泛型 迭代器原理 流文件和垃圾回收 →