正则表达的理解

什么是正则表达?正则表达是计算机科学的一个概念。它的英文名为:Regular Expression。
它是对字符串操作的一种逻辑,主要是用来验证、搜索、替换的。
正则表达式可以在JavaScript和C#中使用。
一、 JavaScript:
在JavaScript中有三个标志:
 g:表示全局(global)模式,匹配所有的字符串;
 i:表示忽略大小写(ignore),就是忽略字符串的大小写,这个也是用的最多的一种模式;
 m:表示多行(multiple)模式,就是匹配多行文本项,如果你的文本有多行的,那么在一行文本结束了它还会继续匹配下一行。
二、 C#:
C#正则表达式使用的类为 System.Text.RegularExpressions.Regex,常用的方法有四种。
1、 测试:Regex.IsMatch(“被测试字符串”, “正则表达式”, “正则表达式选项/模式”);
2、 匹配第一条结果:Regex.Match(“被匹配字符串”, “正则表达式”, “正则表达式选项/模式”);
3、 匹配所有结果: Regex.matchs(“被匹配字符串”, “正则表达式”, “正则表达式选项/模式”);
4、 替换:Regex.matchs(“被匹配字符串”, “正则表达式”, “替换字符”, “正则表达式选项/模式”);
正则还可以匹配纯文本:
在【RegexBuddy.4.5.0.Retail】这个软件中,可以测试你想要测试的匹配一下的正则表达式,在这里匹配完之后就可以把它复制粘贴到你的项目代码里面,但是有时候要用一下转义符号\。
在这里插入图片描述
如图我们可以看到,那个Match那个按钮可以匹配一下文本,上面那个大的框是写正则表达式的框,而下面那个大的框则是放你想要匹配的字段,匹配之后在放字段的框上面有个Hightlight这个按钮,点击一下就可以显示你想要的那段字段了。还有个Replace的按钮,他是替换的意思,如果遇到想要替换的字段,可以点击那个按钮,启用替换模式,然后配出你想要的字段,再在写有Replace字样的那个按钮那里选第一个模式,然后就帮你配好了。
单个匹配

.匹配除换行符以外的任意字符;
\w匹配字母或数字、下划线。等价于’[A¬Za¬z0¬9_]’;
\s匹配任意的空白符,包括空格、制表符、换页符等等。等价于 [\f\n\r\t\v];
\d匹配数字,等价于[0¬9];
\b匹配单词的开始或结束;
x¦y匹配 x 或 y;
[xyz]字符集合,匹配所包含的任意一个字符;
[a¬z]字符范围。匹配指定范围内的任意字符;

而它们的斜杠大写字母就是它们的反义字符。
重复

*重复零次或更多次,等价于{0,};
+重复一次或更多次,等价于{1,};
?重复零次或一次,等价于 {0,1};
{n}重复n次;
{n,}重复n次或更多次;
{n,m}重复n到m次;

贪婪与懒惰
正则表达式默认是贪婪型的,通常的行为是匹配尽可能多的字符,而如果想要尽可能少匹配的话,就在它的后面加上一个?号。

*?重复任意次,但尽可能少重复
+?重复1次或更多次,但尽可能少重复
??重复0次或1次,但尽可能少重复
{n,m}?重复n到m次,但尽可能少重复
{n,}?重复n次以上,但尽可能少重复

位置指定和负向位置指定

(?=exp)匹配exp前面的位置
(?<=exp)匹配exp后面的位置
(?!exp)匹配后面跟的不是exp的位置
(?<!exp)匹配前面不是exp的位置

(?=exp):零宽先行断言,它匹配文本中的某些位置,这些位置的后面能匹配给定的后缀exp。
(?<=exp):零宽后行断言,它匹配文本中的某些位置,这些位置的前面能给定的前缀匹配exp。
(?!exp):零宽负向先行断言,只会匹配后缀exp不存在的位置。
(?<!exp):零宽负向后行断言来查找前缀exp不存在的位置
上面那些字符跟解释都来自正则表达式基础的资料。
还有一些正则表达可以组合起来用:\W\w:匹配所有字符;
\r\n:组合使用,换行

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值