专栏目录https://blog.csdn.net/weixin_44182128/article/details/122654522)
上一节:正则表达式基本介绍https://blog.csdn.net/weixin_44182128/article/details/122675018
创作不易,太需要小伙伴们的收藏点赞推荐了!
如果对您有所帮助,请收藏推荐不迷路,关注我学习更多的内容!
转载请注明出处谢谢!
目录
一、正则表达式Regex的属性选择RegexOptions
IgnoreCase | 指定不区分大小写的匹配。 |
Multiline | 多行模式。 更改 ^ 和 $ 的含义,使它们分别在任意一行的行首和行尾匹配,而不仅仅在整个字符串的开头和结尾匹配。 |
Singleline | 指定单行模式。 更改点 (.) 的含义,以使它与每个字符(而不是除 \n 之外的所有字符)匹配。 |
Compiled | 指定将正则表达式编译为程序集。 这会产生更快的执行速度,但会增加启动时间。 |
CultureInvariant | 指定忽略语言中的文化区域性差异。 |
ECMAScript | 为表达式启用符合 ECMAScript 的行为。 该值只能与 IgnoreCase、Multiline 和 Compiled 值一起使用。 该值与其他任何值一起使用均将导致异常。 |
ExplicitCapture | 定唯一有效的捕获是显式命名或编号的 (?<name>...) 形式的组。这使未命名的圆括号可以充当非捕获组,并且不会使表达式的语法 (?:...) 显得笨拙。 |
RightToLeft | 指定搜索从右向左而不是从左向右进行。 |
IgnorePatternWhitespace | 消除模式中的非转义空白并启用由 # 标记的注释。 但是,此值不影响或消除标记单独的正则表达式语言元素的开头的字符类、数值量词或标记的空格。 |
None | 指定不设置任何选项。 |
例子:
匹配input内连续3个连续数字,多行查找,设置成程序集
Dim input as string="dsffsfv12343434ffssf456fdsfvv"
dim pattern as string="\d{3}"
Dim reg1 As New Regex(pattern, RegexOptions.Compiled Or RegexOptions.Multiline)
Dim matches As MatchCollection = reg1.Matches(input)
二、Pattern匹配规则
1.常用的元字符
元字符是正则表达式最核心和基本的概念,表示正则表达式“通配”概念,构造表达式的基本符号。
多行模式下,匹配一个正整数,[1-9]设置第一个数字不是 0,[0-9]* 表示任意多个数字
[1-9][0-9]*
2、定位符
3、分组:用英文状态下的()进行分组
搜索数字字母组合match,数字分成一组match.groups(1),字母分成一组match.groups(2)
(\d+)([a-zA-Z]+)
4、多项匹配
(1)单个字符多项选择
(2)多个字符多项选择,需要加“()”分组
多行模式下,匹配每段以【.png】、【.gif】、【.jpeg】结尾的行
.+\.(gif|jpeg|png)
5、预查
查找所有以【字母开头】,【字母结尾】,【中间是数字】的match结果,首尾标志不进入match结果
(?<=[a-zA-Z])[0-9]+(?=[a-zA-Z])
6.反向引用
(1)连续的反向引用
搜索文本中连续重复出现2次的单词
([a-z]+) \1
(2)包括连续与不连续的反向引用
非贪婪搜索,重复出现的2个字母之间的内容,包括重复的内容
7、排除特定字符
(1)不排除中间出现字母o的结果
(2)排除中间出现字母o的结果
2022.2.6补充:
(3)排除中间出现特定单词字符串的匹配
^(?!.*(big|great)).+?
解释:
1、正向查询查不到,需要选择多行multiline和righttoleft
【这里可能编程语言区别,.net需要选择righttoleft,如果有知道问题的小伙伴可在评论区交流】
2、(?!.*(big|great)) 表示查找不是big和great的字符
.* 表示big和great前面的字符
后面加上.+?表示非贪婪搜索行
3、^ 标记从行首开始,而不是行中搜索
三、贪婪模式与非贪婪模式
正则表达式一般是遵循尽可能多的匹配结果,如果要想尽可能少的匹配结果增强match准确性,需要在表达式的次数符后面加上【?】号,表示非贪婪模式
贪婪模式
非贪婪模式
四、正则表达式测试工具资源
正则表达式测试工具下载链接https://download.csdn.net/download/weixin_44182128/79473192
五、参考
六、下节预告
3、常用的正则表达式大全https://blog.csdn.net/weixin_44182128/article/details/122799857
创作不易,太需要小伙伴们的收藏点赞推荐了!
如果对您有所帮助,请收藏推荐不迷路,关注我学习更多的内容!
转载请注明出处谢谢!