You need to enable JavaScript to run this app. C#中如何判断字符串是否以8个字符结尾 实现Pastebin链接校验
优惠活动
大模型
产品
解决方案
定价
更多

C#中如何判断字符串是否以8个字符结尾 实现Pastebin链接校验

Pastebin链接校验功能修正实现

问题定位

当前代码中m.EndsWith($"8 letters")的逻辑完全无效:该方法的作用是判断字符串是否以字面量"8 letters"结尾,并非识别“末尾存在8个任意有效字符”的规则,因此校验逻辑永远无法触发预期分支。

核心实现思路

不需要依赖EndsWith做无意义的字面匹配,按照链接的固定结构拆解校验规则即可:

  • 先做基础空值校验,避免用户输入空内容时程序抛出空引用异常
  • 保留原有的前缀匹配逻辑,确认输入字符串以https://pastebin.com/开头
  • 固定前缀https://pastebin.com/的本身长度为21,加上要求的末尾8个有效字符,合法链接的总长度固定为29。只要输入字符串满足这个长度条件,就自然保证末尾刚好是8个字符,不存在多余路径、查询参数或长度不足的问题。
    如果需要更严谨的格式校验(排除包含特殊字符的不合法ID),可以用正则一次性完成全字符串匹配,减少零散判断的疏漏。

基础版修正代码

using System;
using System.Net;

Console.WriteLine("Paste URL:");
string? m = Console.ReadLine();
const string PastePrefix = "https://pastebin.com/";

// 全链路校验:非空、匹配前缀、总长度符合要求
if (!string.IsNullOrWhiteSpace(m) 
    && m.StartsWith(PastePrefix) 
    && m.Length == PastePrefix.Length + 8)
{
    // 直接按前缀长度截取后面的8位ID,避免硬编码偏移量带来的维护问题
    string pasteId = m[PastePrefix.Length..];
    Console.WriteLine(new WebClient().DownloadString($"http://pastebin.com/raw/{pasteId}"));
}
else
{
    Console.WriteLine("输入的Paste链接格式无效");
}

增强版严格校验方案

如果需要限制末尾8个字符必须为PasteID支持的合法格式(大小写字母、数字,无特殊符号),可将判断条件替换为正则匹配,一步覆盖所有规则:

using System;
using System.Net;
using System.Text.RegularExpressions;

Console.WriteLine("Paste URL:");
string? m = Console.ReadLine();
// 正则规则:从字符串起始位置匹配固定前缀,后跟恰好8位大小写字母/数字,直到字符串结束
var validPasteRegex = new Regex(@"^https://pastebin.com/[a-zA-Z0-9]{8}$");

if (!string.IsNullOrWhiteSpace(m) && validPasteRegex.IsMatch(m))
{
    string pasteId = m["https://pastebin.com/".Length..];
    Console.WriteLine(new WebClient().DownloadString($"http://pastebin.com/raw/{pasteId}"));
}

内容的提问来源于stack exchange,提问作者user15349052

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.22 07:54:03