你需要引入 System.Text.RegularExpressions。
常用符号:
^: 开头,$: 结尾。\d: 数字,\w: 字母或数字。+: 一个或多个,*: 零个或多个。.: 任意字符。
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("伪造令牌,拿下!");
}