首页 > 解决方案 > 用空格替换非罗马字符

问题描述

我读了一个 .xlsx 文件,其中一些单元格包含特殊字符。在将此类数据插入数据库时​​,这给我带来了问题,因此我尝试将此类字符替换为空格,如下所示:

using System;
using System.Text.RegularExpressions;

namespace ConsoleApp2
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var name = "MONEDA S.A. ADMINISTRADORA DE FONDOS DE INVERSIモN";
            name = Regex.Replace(name, @"[^A-Za-z0-9 ]", "");
            Console.WriteLine(name);

        }
    }
}

但是这样,我也替换了.,-,- 这样的字符,这是不可取的。那么,我怎样才能只替换非罗马字符呢?

标签: c#regex.net-core

解决方案


看一下 ASCII 表。从你所说的,只要去掉任何不是标准 ASCII 的东西:

var name = "MONEDA S.A. ADMINISTRADORA DE FONDOS DE INVERSIモN";
name = new string(name.Where(c => (int)c <= 127).ToArray());

推荐阅读