C/C++知识分享:C语则表达式
C语言的正则表达式规则,特此跟大家分享。
C语言使用正则表达式的方法很简单,只需要包含正则表达式头文件即可:
#include<regex.h>
相关函数:
regcomp():编译正则表达式
regexec():进行模式匹配
regfree():当不再需要编译的正则表达式时要将其释放
使用时依次调用这些函数即可。其中特别需要提出是regexec()函数的最后一个参数,有如下四种选择:
REG_EXTENDED以功能更加强大的扩展正则表达式的方式进行匹配;
REG_ICASE匹配字母时忽略大小写;
REG_NOSUB不用存储匹配后的结果;
REG_NEWLINE识别换行符号。
一般,我们选择第一个功能更强大的扩展表达式即可。
下面是一个封装这些函数的例子(供参考):
举例:
字符串:Hi, 2016!
表达式:\\\\w\\\\w\\\\W\\\\s\\\\S\\\\d.\\\\D
注意:因为C语言解析字符串时也会区分转义字符\’\\\’,所以我们的正则表达式需要在每个转移字符前再加一个\’\\\’才可以,像\”\\\\w\”
2.字符数量匹配
举例:
字符串:Hi, 20160422!
表达式:\\\\w{2},\\\\s2?0+1*\\\\d{1,5}!
3.字符位置匹配
举例:
字符串:Hi, 20160422!
表达式:^Hi,\\\\s\\\\d{8}!$
4.选择匹配
举例:
字符串:www.123123123e5rt6yDF.com
表达式:\\\\w{3}\\\\.(123){3}[5-6e-y]{6}[^5-6e-y]{2}\\\\s(com|COM)$
本文只介绍了正则表达式的一部分匹配规则,大多是常用的,还有些更高级的用法等以后用到了再更新。另外,文中匹配时举的例子都是为了便于理解而举的,实际使用时可以更精简。
另外的话,作为一名程序员,如果你想更好的提升你的编程能力,好好学习C/C++编程知识,以后努力成为高薪软件开发工程师的话!
编程学习书籍:
编程学习视频:
分享(源码、项目实战视频、项目笔记,基础入门教程)
欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!
对于C/C++感兴趣可以关注小编在后台私信我:【编程交流】一起来学习哦!可以领取一些C/C++的项目学习视频资料哦!已经设置好了关键词自动回复,自动领取就好了!
C#正则表达式示例
C#中的Regex定义了一个正则表达式。Regex类提供了解析大型文本以查找字符模式的方法和属性。在本文中,您将学习如何在C#中使用Regex类。
正则表达式用于检查字符串是否与模式匹配。c# regex也称为c#正则表达式或c# regexp是定义模式的字符序列。模式可以由文字、数字、字符、操作符或结构组成。该模式用于搜索字符串或文件,以查看是否找到匹配项。正则表达式经常用于输入验证、解析和查找字符串。例如,检查有效的出生日期、社会保险号、全名(名字和姓氏用逗号分隔)、查找子字符串的出现次数、替换子字符串、日期格式、有效的电子邮件格式、货币格式,等等。
1. C# Regex类
C# Regex类表示正则表达式引擎。它可以用来快速解析大量的文本以找到特定的字符模式;提取、编辑、替换或删除文本子字符串;并将提取的字符串添加到集合中以生成报告。
Regex类定义在System.Text。RegularExpressions名称空间。Regex类构造函数将模式字符串作为参数,并带有其他可选参数。
下面的代码片段从一个模式创建了一个正则表达式。这里的模式是匹配以字符\’ M \’开头的单词。
下面的代码片段有一个很长的文本,其中包含需要解析的作者名称。
Matches方法用于查找正则表达式中的所有匹配项,并返回MatchCollection。
下面的代码片段循环遍历matches集合。
下面是完整的代码:
在上面的例子中,代码寻找字符 \’ M \’。但是如果单词以“m”开头呢?下面的代码片段使用了RegexOptions。IgnoreCase参数,以确保Regex不查找大写或小写。
2. 使用Regex替换多个空格
Regex.Replace()方法的作用是:将一个匹配的字符串替换为一个新的字符串。下面的示例在字符串中查找多个空格,并用单个空格替换。
下面的代码片段将空格替换为\’ – \’。
3.在C#中使用Regex替换多个空白
下面的示例使用正则表达式模式[a-z]+和Regex.Split()方法拆分任意大写或小写字母字符的字符串。
正则表达式是用于字符串解析和替换的模式匹配标准,是计算机用户用来表示计算机程序应该如何在文本中查找指定的模式,以及在找到每个模式匹配时程序应该做什么的一种方式。有时它被缩写为“regex”。它们是查找和替换采用已定义格式的字符串的强大方法。
下面是一个用C#编写的简单代码示例,展示了如何使用正则表达式。
4. Regex用于C#中的电子邮件验证
为了验证多个电子邮件,我们可以使用以下正则表达式。我们用分隔符\’;\’分隔电子邮件
^((\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*)\\s*[;]{0,1}\\s*)+$
如果你想使用分隔符\’,\’,那么使用这个
^((\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*)\\s*[,]{0,1}\\s*)+$
如果你想同时使用分隔符\’,\’和\’;\’,那么使用this
^((\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*)\\s*[;,.]{0,1}\\s*)+$
因此,通过使用上述正则表达式,您可以验证单个或多个电子邮件。
5. 用C#中的正则表达式验证用户输入
本文解释了如何使用正则表达式(System.Text. Regx类)。在C#和.NET中的正则表达式命名空间)。
我们可以使用正则表达式。匹配方法,接受输入和正则表达式并返回成功
6. 在C#中使用Regex.split拆分字符串
在这篇文章中,我们将学习如何在C#中使用Regex来分割字符串。
在这篇文章中,我们将学习如何在c#中使用RegEx来分割字符串。Regex根据模式拆分字符串。它处理指定为模式的分隔符。这就是为什么Regex优于string.Split。下面是一些如何在c#中使用Regex来分割字符串的例子。让我们开始编码。
为了便于使用,Regex添加了以下名称空间来分割字符串。
示例1
使用正则表达式从字符串中分割出数字。
上面的代码使用\\D+分割字符串,并通过check number和print循环。
7. 在C#中使用Regex替换字符串中的特殊字符
如果你有一个带有特殊字符的字符串,并想要删除/替换它们,那么你可以使用regex。
使用这段代码:
这段代码将删除所有的特殊字符,但如果你不想删除一些特殊字符,例如逗号“,”和冒号“:”,那么做这样的更改:
同样,您也可以根据您的需求进行更改。
注意:
正则表达式并不是所有微小字符串都能解析的解决方案。如果您需要String类或其他类提供的简单解析,请尝试使用它们。
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。