替换字符串而不考虑大写

时间:2021-04-20 11:14:08

标签: c# string biml

我定义了这个变量:

string string2remove ="slimshady";

我有一个值为 filePath 的字符串 myNameIsslimshady

Path.GetFileNameWithoutExtension(filePath.Replace(string2remove,"")) 给我 mynameis

但是,当 filePath 的值为 myNameIsSlimShady Path.GetFileNameWithoutExtension(filePath.Replace(string2remove,"")) 给我 myNameIsSlimShady

显然取代了对大小写的关心。没问题!我将使用 ToLower() 使 filePath 全部小写。

Path.GetFileNameWithoutExtension(filePath.ToLower().Replace(string2remove,""))

现在我得到 mynameisslimshady。一切都在低处,但仍然没有离开大楼。

如何让替换忽略大写?

完整代码如下

<FileFormats>
    <#
    foreach (string filePath in myFiles)
    {
            bool fHasSpace = filePath.Contains(" ");
            if  (fHasSpace) {} else {
          
            #>

    <FlatFileFormat Name="FlatFileFormat_<#=Path.GetFileNameWithoutExtension(filePath.ToLower().Replace(string2remove,""))#>" RowDelimiter="<#=delimiter#>" ColumnNamesInFirstDataRow="true" IsUnicode="false">
        <Columns>
            <# 
                 
                StreamReader myFile = new StreamReader(filePath);
                myColumns = myFile.ReadLine().Replace(separator,"").Split(delimiter);
                 myFile.Close();
                 
                // to determine the column delimiter 
                int columnCount = 0;
                string columnDelimiter = "";
 
                    foreach(string myColumn in myColumns)
                    {
                        string str_delimiter = delimiter.ToString();
                        columnCount++;
                        bool finalColumn = columnCount == myColumns.Length;
                        if (finalColumn)
                        {
                            columnDelimiter = "CRLF";
                        }
                        else
                        {   columnDelimiter = str_delimiter;
                        }
                #>
                <Column Name="<#=myColumn#>" DataType = "<#=imp_datatype#>" Length="<#=imp_length#>" Delimiter="<#=columnDelimiter#>"></Column>
                <# } #>
            </Columns>
        </FlatFileFormat>
            <#}}#>
    </FileFormats>

2 个答案:

答案 0 :(得分:1)

尝试使用具有 StringComparison 参数的重载。

此代码将 myNameIs 写入控制台:

        string toReplace = "slimshady";
        string original = "myNameIsSlimShady";
        string outcome = original.Replace(toReplace, "", StringComparison.OrdinalIgnoreCase);
        Console.WriteLine(outcome);   // outputs myNameIs

答案 1 :(得分:0)

我最终使用了

fileName=Regex.Replace(Path.GetFileNameWithoutExtension(filePath), string2remove,"", RegexOptions.IgnoreCase);