标签: case-insensitive

为什么我不能在C#中定义不区分大小写的字典?

这个C#/ WPF代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace TestDict28342343
{
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();

            Dictionary<string, string> variableNamesAndValues = 
                new Dictionary<string, string>(StringComparison.InvariantCultureIgnoreCase);

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

给我错误:

'System.Collections.Generic.Dictionary.Dictionary(System.Collections.Generic.IDictionary)'的最佳重载方法匹配有一些无效的参数

然而,我发现这个代码例子比比皆是,如在这里这里.

如何定义其键不区分大小写的字典?

c# dictionary case-insensitive

8
推荐指数
2
解决办法
1999
查看次数

JSON模式枚举可以不区分大小写吗?

JSON Schema枚举

JSON Schemas具有枚举功能,它对字符串类型的值施加约束:

{
    "type": "array",
    "items": [
        {
            "type": "number"
        },
        {
            "type": "string"
        },
        {
            "type": "string",
            "enum": ["Street", "Avenue", "Boulevard"]
        },
        {
            "type": "string",
            "enum": ["NW", "NE", "SW", "SE"]
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

此架构验证诸如的值[1600, "Pennsylvania", "Avenue", "NW"].

问题

有一种优雅的方式使enum不区分大小写,这样既Avenueavenue将被接受为数组中的第三个值?

其他可能的方法

我可以anyOf在值列表上使用,并根据不区分大小写的正则表达式验证每个值 - 但这很麻烦,容易出错并且不够优雅.

enums case-insensitive jsonschema

8
推荐指数
1
解决办法
8828
查看次数

在bash中,文件操作符(-f)是否可以不区分大小写?

我正在做以下事情:

if [ -f $FILE ] ; then
    echo "File exists"
fi
Run Code Online (Sandbox Code Playgroud)

但我希望它-f不区分大小写.也就是说,如果FILE是/etc/somefile,我希望-f识别/Etc/SomeFile.

我可以用glob部分解决它:

shopt -s nocaseglob
TARG='/etc/somefile'

MATCH=$TARG*    #assume it returns only one match

if [[ -f $MATCH ]] ; then
    echo "File exists" 
fi
Run Code Online (Sandbox Code Playgroud)

但不区分大小写的globbing仅适用于文件名部分,而不适用于完整路径.所以,如果TARG是行不通的话/Etc/somefile.

有没有办法做到这一点?

bash case-insensitive

7
推荐指数
1
解决办法
9548
查看次数

RegExp匹配大写字母和小写字母

我写了一些像这样的RegExp pattren:

SomeText
Run Code Online (Sandbox Code Playgroud)

但我希望pattren符合:

Sometext
sOMeTeXt
SOMETEXT
SoMEteXt
Run Code Online (Sandbox Code Playgroud)

像这样的事!

实际上我想用这个

\s?[^a-zA-Z0-9\_]SomeText[^a-zA-Z0-9\_]
Run Code Online (Sandbox Code Playgroud)

我该怎么办 ?

regex case-insensitive

7
推荐指数
3
解决办法
4万
查看次数

git merge:过滤文件以避免愚蠢的冲突(如空格或大小写更改)

我目前正处于一个非常复杂的git合并中,我有很多冲突.冲突是关于两个Ada源文件.

我想进行合并,忽略空格更改和大小写更改(因为Ada语言不区分大小写).你知道是否有办法告诉git在合并之前忽略某些变化?

我的解决方案目前是在合并之前在两个分支上运行GNAT漂亮打印,但如果git中包含一个通用解决方案,那将对我有很大帮助.

git merge whitespace conflict case-insensitive

7
推荐指数
1
解决办法
1604
查看次数

Case Insensitive Dictionary不起作用

我花了几个小时试图弄清楚为什么我的泛型字典(Of String,String)不会忽略大小写.

这是我的代码:

Dim test As New System.Collections.Generic.Dictionary(Of String, String)(System.StringComparison.OrdinalIgnoreCase)
test.Add("FROG", "1")
Console.WriteLine(test.ContainsKey("frog"))
Run Code Online (Sandbox Code Playgroud)

控制台每次都显示"False".它应该显示"真实".

如果我使用:

Console.WriteLine(test."frog")) 
Run Code Online (Sandbox Code Playgroud)

我得到一个KeyNotFoundException.

看起来似乎完全忽略了Comparer参数.

到底是怎么回事?

vb.net generics dictionary case-insensitive

7
推荐指数
1
解决办法
6827
查看次数

在逐个命令的基础上为bash完成设置不区分大小写

有没有办法指定特定命令具有不区分大小写,而不是全局打开不区分大小写(至少对于那个shell)?

在我的特定情况下,我有一个小应用程序,它让我命令行访问电子邮件地址的数据库,所以我输入:

db get email john smith
Run Code Online (Sandbox Code Playgroud)

然后它返回John Smith的电子邮件地址.所以我设法在应用程序内部完成启用:设置

COMPREPLY=($(compgen -W "$(db --complete $COMP_CWORD "$COMP_WORDS[@]"}")" -- ${COMP_WORDS[COMP_CWORD]}))
Run Code Online (Sandbox Code Playgroud)

可以让我选项卡完成getemail.但是,如果我输入j<tab>,它就会拒绝,因为在电子邮件数据库中,它是正确的大写.无论如何,我想得到bash来完成这个.(如果我使用资本J,它会起作用.)

如果不这样做,我可以让我的--complete选项通过匹配输入来改变其回复的情况,我想,但理想情况下,如果可能的话,命令行将匹配数据库.

请注意,我在使用readline时在app中工作,它只与bash接口,这似乎是一个问题.

bash case-insensitive tab-completion

7
推荐指数
1
解决办法
1124
查看次数

Marpa中不区分大小写的匹配

我之前关于使用正则表达式进行不区分大小写的关键字匹配的问题相关.

Marpa中是否可以不区分大小写地匹配字符串?如果是这样,怎么样?

假设我有语法

:start ::= script
identifier ~ [\w]+
script ::= 'script' identifier code
code ::= command*
command ::= 'run' | 'walk' | 'stop'
Run Code Online (Sandbox Code Playgroud)

我怎样才能使它符合任何script,Script,SCRIPT或更低和大写字母任何其他组合?

regex case-insensitive marpa

7
推荐指数
1
解决办法
126
查看次数

如何忽略/恢复文件内容中大小写的更改?

我正在对 Microsoft Access VBA 代码进行版本控制,该代码通常不区分大小写。然而,变量名的情况在那时(由 Access 编译器或由开发人员)时不时地发生。这通常会导致我的 git 工作区发生巨大变化。

如何还原或忽略仅涉及文件内容大写或小写的更改?

一个例子:

git init
echo "public sub example()\nend sub" > mdlExample.ACM
#                ^-- lower e
git add --all
git commit --all --message "Initial Commit"
echo "public sub Example()\nend sub" > mdlExample.ACM
#                ^-- upper E
Run Code Online (Sandbox Code Playgroud)

我会喜欢这样的东西:

git restore --only-case-changes # not working
Run Code Online (Sandbox Code Playgroud)

进而:

git status
> On branch master
> nothing to commit, working tree clean
Run Code Online (Sandbox Code Playgroud)

git bash case-insensitive git-bash

7
推荐指数
2
解决办法
265
查看次数

在忽略大小写的情况下比较字符串的有效方法是什么?

要比较两个Strings,忽略大小写,看起来我首先需要转换为字符串的小写版本:

let a_lower = a.to_lowercase();
let b_lower = b.to_lowercase();
a_lower.cmp(&b_lower)
Run Code Online (Sandbox Code Playgroud)

是否有一种方法可以比较字符串,忽略大小写,而不创建临时小写字符串,即迭代字符,执行小写转换并比较结果?

string case-insensitive rust

7
推荐指数
2
解决办法
4251
查看次数