【正则表达式】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
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Regex Testor Version 1.02 Copyright (c) 2013 Fiery Red - flameleo 我们在使用正则表达式( regex: regular expression )的过程中,经常发现正则表达式的语法很令人头疼,即使对经常使用它的人来说也是如此。对于刚接触正则表达式的人来说多练习,多使用,才能熟练掌握正则表达式。 由于难于读写,容易出错,且需要反复练习。所以找一种工具正则表达式对我们脑中构思的regex进行测试是很有必要的。 1.特点 a.适合初学者,在不断测试学习如何使用正则表达式。 b.可以分组保存,测试中用到的正则表达式。 c.本工具使用最常见的regex。以下是简单示例: a|b Matches a or b gr(a|e)y Matches a or e . Matches any single character [abc] Matches a single character a, b or c [^abc] Matches any single character except a, b or c [a-z] Matches a single charactor in the range a to z [a-zA-Z] Matches a single charactor in the range a to z or A to Z ^ Matches the start of the filename $ Matches the end of the filename * Matches the preceding element zero or more times ? Matches the preceding element zero or one times + Matches the preceding element one or more times {x} Matches the preceding element x times {x,} Matches the preceding element x or more times {x,y} Matches the preceding element between x and y times 值得一提的是()代表子匹配,有些环境中gr(a|e)y Matches gray or grey 还支持许多常见的转义字符 \b,\B,\c,\d,\D,\f,\n,\r,\s,\S,\t,\v,\w,\W,\x,\u 具体详见附件 Regular Expression Syntax1.html 2.功能介绍 a.界面上显示提供regex输入框和原文本框,点击[模式匹配]按钮后,会在右侧输出结果,包括匹配字符串列表和文本。 b.对于测试中一些有用的regex,点击[insert]按钮添加到模式列表,以备日后使用。你可以位该regex添加描述分组,该信息会在程序结束后保存在CustomPatternInfo.ini文件中。 c.可以参考Readme_1.jpq和Readme_2.jpq图片介绍。 3.有待改进 a.界面布局和控件友好型和交互性。 b.界面功能提供regex语法支持。(暂时可以通过导入附件RegexSystax.ini到CustomPatternInfo.ini中) 4.意见反馈 a.请将您的宝贵意见反馈到 FieryRed_2012@163.com 附件: Readme.txt Readme_1.jpg Readme_2.jpg Regular Expression Syntax.html RegexSystax.ini
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

智能建造小硕

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

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

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

打赏作者

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

抵扣说明:

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

余额充值