【正则表达式】regex101超好用的正则表达式测试和学习工具(内含使用教程、Python和C#正则表达式代码示例)


今天使用了正则表达式从文本中捕获目标数据,虽然之前有一定的基础,但是现在忘的差不多了,感觉自己纯手写的正则表达式很容易出错,浪费很多时间。后来使用了这个正则表达式匹配网站,效率提高了很多。下面就来具体介绍一下如何使用。

之前的两篇博客文章可以学学基础:

【C#进阶二】C#中的正则表达式知识总结(字符转义/字符类/ 定位点/ 分组构造 /数量词/反向引用构造/替换构造/替代/正则表达式选项)(理论篇)
【C#进阶三】C#正则表达式的使用及常用案例(Regex.IsMatch、Regex.Match,match.NextMatch、Regex.Matches、Regex.Replace等)(实践篇)

1.使用介绍

regex101是一个在线的正则表达式测试和学习工具,可以帮助用户测试和调试正则表达式。以下是使用regex101的基本步骤:

打开regex101的网站:https://regex101.com/
2. 在左侧的输入框中输入要匹配的文本。
3. 在上方的正则表达式输入框中输入你的正则表达式。
4. 选择正则表达式的语法类型(如PCRE、JavaScript等)。
5. 点击“Run”按钮,查看正则表达式是否匹配输入的文本。
6. 如果正则表达式有错误,regex101会在右侧的解释器窗口中显示错误信息。
7. 如果需要进一步调试和测试正则表达式,可以在右侧的“Test String”窗口中输入更多测试字符串,并查看正则表达式的匹配情况。
8. 在右侧的“Substitution”窗口中可以输入替换字符串,测试正则表达式的替换效果。
9. 在右侧的“Explanation”窗口中可以查看正则表达式的解释和分析,帮助学习正则表达式的语法和规则。

在这里插入图片描述

如果没有匹配上,也就是正则表达式有问题,可以进入Debug模式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

所以用起来还是非常方便的,大家使用正则表达式的时候可以去使用。

2.正则表达式例子

正则表达式由特殊字符、普通字符和元字符组成,用于匹配字符串中的特定模式。例如,可以使用正则表达式来匹配email地址、电话号码、网址等等。正则表达式具有非常灵活和强大的语法,可以通过组合和嵌套不同的元字符和模式,实现各种高级文本处理功能。

2.1 Python例子

假设我们有一个字符串列表,每个字符串包含一个email地址,我们想要从中提取出所有的email地址,先用regex101写好正则表达式。
在这里插入图片描述

我们可以使用Python内置的re模块和正则表达式来实现:

import re

# 定义正则表达式
pattern = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b'

# 输入字符串列表
text_list = ['abc@gmail.com', 'xyz@hotmail.com', '123@abc.edu', 'foo@bar']

# 遍历每个字符串,提取email地址
for text in text_list:
    # 使用re.findall()方法查找匹配项
    matches = re.findall(pattern, text)
    if matches:
        print(matches)

运行以上代码,输出结果为:

['abc@gmail.com']
['xyz@hotmail.com']
['123@abc.edu']

这个例子中,我们定义了一个正则表达式,用于匹配email地址。然后,我们遍历输入的字符串列表,使用re.findall()方法查找每个字符串中所有匹配的email地址,并打印出来。

2.2 C#例子

假设我们有一个字符串,包含一些电话号码,我们想要从中提取出所有的电话号码。
image-20230330225337524

我们可以使用C#内置的正则表达式类(Regex)和正则表达式来实现:

using System;
using System.Text.RegularExpressions;

class Program
{
    static void Main()
    {
        // 定义正则表达式
        string pattern = @"(\d{3})-(\d{3}-\d{4})";

        // 输入字符串
        string input = "John's phone number is 123-456-7890. Mary's phone number is 111-222-3333.";

        // 使用Regex.Matches()方法查找匹配项
        MatchCollection matches = Regex.Matches(input, pattern);

        // 遍历所有匹配项,输出电话号码
        foreach (Match match in matches)
        {
            Console.WriteLine(match.Value);
        }
    }
}

运行以上代码,输出结果为:

Copy code123-456-7890
111-222-3333

上面的代码定义了一个正则表达式,用于匹配电话号码。然后,使用Regex.Matches()方法查找输入字符串中所有匹配的电话号码,并遍历所有匹配项,输出电话号码。需要注意的是,在C#中使用正则表达式时,需要使用@符号将正则表达式字符串标记为原始字符串,以避免转义字符的影响。

欢迎关注公众号【智能建造小硕】(分享计算机编程、人工智能、智能建造、日常学习和科研经验等,欢迎大家关注交流。)

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
《精通正则表达式(第3版)》讲解正则表达式,这种工具能够提高工作效率、让生活变得更轻松。精心调校后的正则表达式只需要十多秒就能完成以前数小时才能完成的枯燥任务。如今,正则表达式已经成为众多语言及工具——Perl、PHP、Java、Python、Ruby、MysQL、VB-NET和c#(以及.NETFramework中的任何语言)——中的标准特性,依靠它,你能以之前完全不敢设想的方式进行复杂而精巧的文本处理。十年三版,再显王者风范,近30年开发经验的智慧结晶,深入理解正则表达式,彻底修炼基本功,全球第一本全面深入讲解正则表达式的经典巨著,《程序员》杂志技术主编孟岩鼎力推荐。 专家点评:《精通正则表达式》是系统学习正则表达式的唯一最权威著作。任何时候,任何地方,只要提到正则表达式著作,人们都会提到这本书。该书质量之高,声誉之盛,使得几乎没有人企图挑战它的地位,从而在正则表达式图书领域形成了独特的“一夫当关”的局面,称其为正则表达式圣经,绝对当之无愧。 ——《程序员》杂志技术主编孟岩 《精通正则表达式(第3版)》包含了对PHP及其正则表达式的讲解。这一版的更新也反映了其他语言的发展,深入讲解了Sun的java.util.regex,并特别提到了Java1.4.2和Java1.5/1.6之间的众多差异。 本书的内容: ·各种语言和工具的功能比较 ·正则引擎的工作原理 ·优化(能节省大量的时间) ·准确匹配期望的文本 ·针对具体语言的章节 《精通正则表达式(第3版)》,以明晰轻松的笔调向程序员深入浅出地讲解复杂的知识,并给出了现实世界中复杂问题的解决办法,读者能够立刻运用书中丰富的知识,巧妙而高效地解决各种问题。
《精通正则表达式》是系统学习正则表达式的唯一最权威著作。任何时候,任何地方,只要提到正则表达式著作,人们都会提到这本书。该书质量之高,声誉之盛,使得几乎没有人企图挑战它的地位,从而在正则表达式图书领域形成了独特的“一夫当关”的局面,称其为正则表达式圣经,绝对当之无愧。                        ——《程序员》杂志技术主编 孟岩   本书讲解正则表达式,这种工具能够提高工作效率、让生活变得更轻松。精心调校后的正则表达式只需要十多秒就能完成以前数小时才能完成的枯燥任务。如今,正则表达式已经成为众多语言及工具——Perl、PHP、Java、Python、Ruby、MysQL、VB.NET和c#(以及.NET Framework中的任何语言)——中的标准特性,依靠它,你能以之前完全不敢设想的方式进行复杂而精巧的文本处理。   《精通正则表达式(第3版)》包含了对PHP及其正则表达式的讲解。这一版的更新也反映了其他语言的发展,深入讲解了Sun的java.util.regex,并特别提到了Java 1.4.2和Java 1.5/1.6之间的众多差异。   本书的内容:   ·各种语言和工具的功能比较   ·正则引擎的工作原理   ·优化(能节省大量的时间)   ·准确匹配期望的文本   ·针对具体语言的章节   《精通正则表达式(第3版)》,以明晰轻松的笔调向程序员深入浅出地讲解复杂的知识,并给出了现实世界中复杂问题的解决办法,读者能够立刻运用书中丰富的知识,巧妙而高效地解决各种问题。 此书为英文版,因为中文版比较大,要下次下载;
随着互联网的迅速发展,几乎所有工具软件和程序语言都支持的正则表达式也变得越来越强大和易于使用。《精通正则表达式(第3版)》是讲解正则表达式的经典之作。《精通正则表达式(第3版)》主要讲解了正则表达式的特性和流派、匹配原理、优化原则、实用诀窍以及调校措施,并详细介绍了在Perl、Java、.NET、PHP中正则表达式的用法。 《精通正则表达式(第3版)》自第1版开始着力于教会读者 "以正则表达式来思考",来让读者真正"精通"正则表达式。该版对PHP的相关内容、Java1.5和Java1.6的新特性作了可观的扩充讲解。任何有机会使用正则表达式的读者都将因《精通正则表达式(第3版)》而受益匪浅。 《精通正则表达式(第3版)》讲解正则表达式,这种工具能够提高工作效率、让生活变得更轻松。精心调校后的正则表达式只需要十多秒就能完成以前数小时才能完成的枯燥任务。如今,正则表达式已经成为众多语言及工具--Perl、PHP、Java、Python、Ruby、MysQL、VB-NET和c#(以及.NETFramework中的任何语言)--中的标准特性,依靠它,你能以之前完全不敢设想的方式进行复杂而精巧的文本处理。十年三版,再显王者风范,近30年开发经验的智慧结晶,深入理解正则表达式,彻底修炼基本功,全球第一本全面深入讲解正则表达式的经典巨著,《程序员》杂志技术主编孟岩鼎力推荐。 专家点评:《精通正则表达式》是系统学习正则表达式的唯一最权威著作。任何时候,任何地方,只要提到正则表达式著作,人们都会提到这本书。该书质量之高,声誉之盛,使得几乎没有人企图挑战它的地位,从而在正则表达式图书领域形成了独特的"一夫当关"的局面,称其为正则表达式圣经,绝对当之无愧。 --《程序员》杂志技术主编孟岩 《精通正则表达式(第3版)》包含了对PHP及其正则表达式的讲解。这一版的更新也反映了其他语言的发展,深入讲解了Sun的java.util.regex,并特别提到了Java1.4.2和Java1.5/1.6之间的众多差异。 本书的内容: ·各种语言和工具的功能比较 ·正则引擎的工作原理 ·优化(能节省大量的时间) ·准确匹配期望的文本 ·针对具体语言的章节 《精通正则表达式(第3版)》,以明晰轻松的笔调向程序员深入浅出地讲解复杂的知识,并给出了现实世界中复杂问题的解决办法,读者能够立刻运用书中丰富的知识,巧妙而高效地解决各种问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智能建造小硕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值