网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 设计资源 > 正则表达式 > 正文

C#中的正则表达式学习资料

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务
不再是前面说的位置符号,这里它是否定符号,表示排除的意思,上面的表达式,表示不包含数字0到9的字符。

思考1:表达式"q[^u]"的意思。假如有下列的单词,那些将被匹配?
Iraqi
Iraqian
miqra
qasida
qintar
qoph
zaqqum


除了范围字符的表示之外,还有一个是点字符".",点字符出现在表达式中,表示匹配任何字符。
如表达式:"07.04.76"将匹配:
形如:07/04/76, 07-04-76,07.04.76。

如果我们需要在某些字符中可选择,我们可以采用选项字符"|":
选项字符有“或"的意思,比如表达式:"[Bob|Robert]"则表示Bob或者Robert将被匹配。
现在看我们前面提到的表达式:"gr[ea]y" ,利用选项字符我们可以写作"grey|gray",它们是相同的。
圆括号的使用:圆括号在表达式中也是被作为元字符使用,如前面的表达式,我们可以写成:"gr(e|a)y",这里的圆括号是必须的,如果没有圆括号,那么表达式"gre|ay"将匹配gre或者ay,这不是我们想要的结果。如果你还不是很清楚,让我们看一下下面的例子:
在电子邮件中查找所有以From:或者Subject:或者Date:开头的行,我们比较下面的两个表达式:
表达式1:"^From|Subject|Data: "
表达式2:"^(From|Subject|Data): "
哪一个是我们想要的?
很明显,表达式1的结果不是我们想要的结果,它匹配的将是:From或者Subjec或者Data: ,表达式2使用圆括符,就能满足我们的需要。

单词边界
我们已经可以匹配出现在行首和行尾的字符,那么如果我们想定位的不仅仅是行首或者行尾呢?我们需要引入单词边界符号,单词边界符号是:"\b",斜杠不可省略,否则变成匹配字母b。使用单词边界符号,我们可以定位匹配的位置必须出现在一个单词的开始或者结尾部分,而不是在单词的中间。例如:"\bis\b"表达式在字符串"This is a cat."中将匹配单词"is"而不会匹配单词"This"中的"is"。

字符串边界符号
除了上述的位置符号,如果我们要匹配的是整个字符串(含多个单词)那么我们可以使用下面的两个符号:
\A :表示字符串的开始处;
\z :表示字符串的结束处。
表达式:"\AThis is a cat\z"将匹配这个字符串"This is a cat"。
使用边界定位符号,这里要提到一个重要的概念,那就是单词字符,单词字符表示可以构成单词的字符,它们是[a-zA-Z0-9]中的任意一个字符。所以上面的表达式也会在句子"This is a cat."得到匹配。匹配的结果不包含句号。


重复数量符号
让我们看表达式:"Colou?r", 这个表达式中出现了我们还没有见过的问号,(这个问号和文件名称匹配的问号意义不同),它表示符号前面的一个字符可以被重复的次数,"?"表示0次或者1次,前面的表达式中问号表示u可以出现0或1次,所以它将匹配"Color"或者"Colour"。
下面是其他的重复数量符号:
+ :表示1次或者多次
* :表示0次或者多次
例如我们要表示一或多个空格,我们可以写表达式:" +";

如果要表示具体次数呢?我们引入花括符{}。
{n} : n是具体的数字,表示重复n次。
{n,m}: 表示最少那次,最多m次。

这些符号都限定了符号前面一个字符的匹配次数。但是如果你想重复多个字符,比如一个单词,那么怎么办?我们再次使用圆括号,前面我们把圆括号作为选项的范围符号,这里是圆括的另外一种使用方法,它被表示为一个组,例如表达式:“(this)"这里的this就是一个组,那么问题就好办了,重复数量符号可以用来表示它前面一个组的重复次数。

现在回到查找重复单词的问题,假如我们要找到“the
设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师