第二十八式:C# 正则表达式 (破译密码)

绝世
秘籍
冲儿,魔教的密信往往是一堆乱码,但其中隐藏着规律(Pattern)。
要想从一堆乱七八糟的文字中找到你想要的信息(如邮箱、电话),就需要用到正则表达式 (Regular Expressions / Regex)
听起来像是一种高深的内功心法?
更像是“天书”。它的语法非常古怪,连很多老江湖都记不住,通常需要查表或者问神雕(AI)。

1. 核心招式 - 寻龙诀

你需要引入 System.Text.RegularExpressions

常用符号:

2. 实战 - 抓捕行动


using System.Text.RegularExpressions;

string secret = "我的电话是 13812345678,打给我!";
string pattern = @"\d{11}"; // 意思是:连续11个数字

// 1. 验证 (IsMatch): 里面有没有电话?
bool hasPhone = Regex.IsMatch(secret, pattern); // true

// 2. 提取 (Match): 把它抓出来!
Match match = Regex.Match(secret, pattern);
Console.WriteLine(match.Value); // 13812345678

// 3. 替换 (Replace): 隐藏它!
string safe = Regex.Replace(secret, pattern, "***********");
// 我的电话是 ***********,打给我!
        
注意那个 @ 符号!在字符串前面加 @ 可以让 \ 不转义。
否则你就得写成 "\\d{11}",非常麻烦。
🔍

动手时刻:密探

编写一个程序,检查用户输入的字符串是不是一个合法的“江湖令”(必须以 'J' 开头,后面跟着3个数字)。

提示:模式应该是 ^J\d{3}$

查看参考答案

string input = "J952";
string pattern = @"^J\d{3}$";

if (Regex.IsMatch(input, pattern))
{
    Console.WriteLine("令牌有效,放行!");
}
else
{
    Console.WriteLine("伪造令牌,拿下!");
}
                    

成就解锁:【破译专家】 获得:密码本