基于C#或其他方法提取符合coolboy*.easy格式的目标文本
提取符合coolboy*.easy格式文件名的C#实现
核心方案
用正则表达式精准定位目标格式的文件名,从带乱码的干扰文本里提取出干净结果,这是最直接高效的方式。
完整代码示例
using System; using System.Text.RegularExpressions; class FileNameExtractor { static void Main() { // 示例带乱码的输入文本 string messyInput = "‹: coolboy77.easy h½…:;L:ò> 测试内容coolboy954.easy 乱码堆coolboy5.easy 无关文本"; // 正则规则:匹配coolboy开头+任意数字+.easy结尾的格式 // 要是需要支持coolboy后跟任意字符,把\d+改成.*?即可(.*?是非贪婪匹配,避免连多个文件名一起抓) Regex targetRegex = new Regex(@"coolboy\d+\.easy"); // 提取所有符合规则的结果 MatchCollection results = targetRegex.Matches(messyInput); // 输出提取到的干净文件名 foreach (Match match in results) { Console.WriteLine(match.Value); } } }
代码细节说明
- 正则表达式拆解:
coolboy:匹配固定前缀,确保是目标文件名的开头\d+:匹配1个及以上数字,对应示例里的77、954、5这类数字后缀\.easy:匹配固定后缀,.在正则里是特殊字符,必须用\转义才能匹配真实的点号
- 乱码适配:不管周围有多少非ASCII乱码,只要目标文件名是标准ASCII字符组成,正则就能精准抓取
- 批量提取:
Regex.Matches会返回所有符合规则的匹配项,一次性处理多个目标文件名
备选非正则实现(适合简单场景)
如果不想用正则,也可以手动遍历字符串:
- 循环查找文本中
coolboy的起始位置 - 从该位置开始,继续查找
.easy的结束位置 - 截取两个位置之间的字符串,验证格式后保留
不过这种方式代码量更大,应对复杂干扰内容时容错性不如正则,优先推荐正则方案。
内容的提问来源于stack exchange,提问作者NoneHelper
相关产品推荐
相关产品推荐

