C#正则表达式
发布日期:2021-11-02 20:00:51 浏览次数:2 分类:技术文章

本文共 1936 字,大约阅读时间需要 6 分钟。

开发工具与关键技术: Visual Studio 2015  mvc c# 作者:彭水清撰写时间:2019/5/15   在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。   正则表达式是用于进行文本匹配的工具,所以本文里多次提到了在字符串里搜索/查找,这种说法的意思是在给定的字符串中,寻找与给定的正则表达式相匹配的部分。有可能字符串里有不止一个部分满足给定的正则表达式,这时每一个这样的部分被称为一个匹配。匹配在本文里可能会有三种意思:一种是形容词性的,比如说一个字符串匹配一个表达式;一种是动词性的,比如说在字符串里匹配正则表达式;还有一种是名词性的,就是刚刚说到的“字符串中满足给定的正则表达式的一部分”。学习正则表达式的最好方法是从例子开始,理解例子之后再自己对例子进行修改,实验。  假设你在一篇英文小说里查找hi,你可以使用正则表达式hi。  这是最简单的正则表达式了,它可以精确匹配这样的字符串:由两个字符组成,前一个字符是h,后一个是i。通常,处理正则表达式的工具会提供一个忽略大小写的选项,如果选中了这个选项,它可以匹配hi,HI,Hi,hI这四种情况中的任意一种。不幸的是,很多单词里包含hi这两个连续的字符,比如him,history,high等等。用hi来查找的话,这里边的hi也会被找出来。如果要精确地查找hi这个单词的话,我们应该使用\bhi\b。\b是正则表达式规定的一个特殊代码(它也叫作元字符,metacharacter),代表着单词的开头或结尾,也就是单词的分界处。虽然通常英文的单词是由空格或标点符号或换行来分隔的,但是\b并不匹配这些单词分隔符中的任何一个,它只匹配一个位置。  假如你要找的是hi后面不远处跟着一个Lucy,你应该用\bhi\b.*\bLucy\b。1.1反义代码/语法                              说明   \W             匹配任意不是字母、数字和下划线的字符,等价于'[∧A­Za­z0­9_]   \S             配任意不是空白符的字符。等价于 [∧\f\n\r\t\v]   \D             匹配任意非数字的字符,等价于[∧0­9]   \B             匹配不是单词开头或结束的位置  [∧x]            匹配除了x以外的任意字符[∧asdfg]          匹配除了asdfg这几个字母以外的任意字符  [∧a­z]           匹配除了小写字母以外的任意字符    ^             匹配字符串的开始    $             匹配字符串的结束    1.2贪婪与懒惰当正则表达式中包含能接受重复的限定符时,通常的行为是(在使整个表达式能得到匹配的前提下)匹配尽可能多的字符。考虑这个表达式:a.*b,它将会匹配最长的以a开始,以b结束的字符串。如果用它来搜索aabab的话,它会匹配整个字符串aabab。这被称为贪婪匹配。正则表达式默认是贪婪型的,通常的行为是匹配尽可能多的字符,   我们更需要懒惰匹配,也就是匹配尽可能少的字符。前面给出的重复元字符都可以被转化为懒惰匹配模式,只要在它后面加上一个问号 ?  代码/语法                                        说明    *?                                              重复任意次,但尽可能少重复  +?                                              重复1次或更多次,但尽可能少重复  ??                                              重复0次或1次,但尽可能少重复 {n,m}?                                           重复n到m次,但尽可能少重复 {n,}?                                            重复n次以上,但尽可能少重复  1.3位置指定和负向位置指定(?=exp):零宽先行断言,它匹配文本中的某些位置,这些位置的后面能匹配给定的后缀exp。   (?<=exp):零宽后行断言,它匹配文本中的某些位置,这些位置的前面能给定的前缀匹配exp。   (?!exp):零宽负向先行断言,只会匹配后缀exp不存在的位置。  (?

转载地址:https://blog.csdn.net/weixin_44540414/article/details/90273468 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:监听行单击事件的重载
下一篇:Cookie对象

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月13日 18时28分52秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章