You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#如何识别字符串中的特殊字符并提取特殊字符前的常规内容

实现方案

方案1:正则表达式匹配(推荐)

直接匹配字符串开头所有的英文字母+空格,遇到第一个特殊字符自动终止匹配:

using System.Text.RegularExpressions;

string id = "Hello everybodyø1Ø9ß&ëÄ";
// 匹配开头连续的大小写英文字母、空格,遇到其他字符停止
string result = Regex.Match(id, @"^[a-zA-Z\s]+").Value;
Console.WriteLine(result); 
// 输出:Hello everybody

如果你的保留范围还包含数字、下划线等其他合法字符,只要修改[]内的匹配规则即可,比如要加数字的话就改成^[a-zA-Z0-9\s]+。

方案2:遍历查找第一个特殊字符位置

如果不想引入正则命名空间,可以手动遍历字符找截断位置:

string id = "Hello everybodyø1Ø9ß&ëÄ";
int splitIndex = id.Length;
for(int i=0; i<id.Length; i++)
{
    char c = id[i];
    // 判断是否不是英文字母也不是空格,即目标特殊字符
    if(!char.IsLetter(c) && c != ' ')
    {
        splitIndex = i;
        break;
    }
}
string result = id.Remove(splitIndex);
Console.WriteLine(result);
// 输出:Hello everybody

注意:如果你的需求里「合法字符」的范围还有其他自定义内容,只要修改上面的判断逻辑即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 13:39:04