标签: case-insensitive

忽略Python字符串中的大小写

在Python中比较字符串的最简单方法是什么,忽略大小写?

当然可以做(str1.lower()<= str2.lower())等,但是这创建了两个额外的临时字符串(具有明显的alloc/gc开销).

我想我正在寻找相当于C的stricmp().

[请求更多上下文,所以我将用一个简单的例子来证明:]

假设您要对looong字符串列表进行排序.你只需要做List.sort().这是O(n*log(n))字符串比较,没有内存管理(因为所有字符串和列表元素都是某种智能指针).你很快乐.

现在,您想要做同样的事情,但忽略这种情况(让我们简化并说所有字符串都是ascii,因此可以忽略区域设置问题).您可以执行List.sort(key = lambda s:s.lower()),但是每次比较会导致两个新的分配,加上垃圾收集器与重复(降低)字符串的负担.每个这样的存储器管理噪声比简单的字符串比较慢几个数量级.

现在,使用就地stricmp()函数,你可以:theList.sort(cmp = stricmp),它与theList.sort()一样快和内存友好.你又开心了.

问题是任何基于Python的不区分大小写的比较涉及隐式字符串重复,所以我期望找到基于C的比较(可能在模块字符串中).

找不到那样的东西,因此问题就在这里.(希望这澄清了这个问题).

python string case-insensitive

51
推荐指数
5
解决办法
10万
查看次数

Git:文件重命名

我想将文件夹从" Frameworks" 重命名为" frameworks",但是git不会让我添加新的小写名称.我猜它会对文件名不区分大小写,是吗?

A git add frameworks/ -f没有帮助

git macos case-insensitive

51
推荐指数
1
解决办法
2万
查看次数

使map :: find操作不敏感

map :: find方法是否支持不区分大小写的搜索?
我有一张地图如下

map<string, vector<string> > directory;
Run Code Online (Sandbox Code Playgroud)

并希望下面的搜索忽略大小写.

directory.find(search_string);
Run Code Online (Sandbox Code Playgroud)

c++ string dictionary stl case-insensitive

47
推荐指数
6
解决办法
3万
查看次数

SQL SELECT LIKE(不敏感的外壳)

我正在尝试执行sql查询:

select * from table where column like '%value%';
Run Code Online (Sandbox Code Playgroud)

但数据保存为"价值"(V为资本).

当我执行此查询时,我没有得到任何行.如何进行调用,无论字符的大小如何,它都会查找"值"?

mysql sql case-insensitive sql-like

44
推荐指数
7
解决办法
6万
查看次数

PostgreSQL:不区分大小写的字符串比较

PostgreSQL有一个简单的忽略大小写比较吗?

我想替换:

SELECT id, user_name 
    FROM users 
        WHERE lower(email) IN (lower('adamB@a.com'), lower('eveA@b.com'));
Run Code Online (Sandbox Code Playgroud)

有类似的东西:

SELECT id, user_name 
    FROM users 
        WHERE email IGNORE_CASE_IN ('adamB@a.com', 'eveA@b.com');
Run Code Online (Sandbox Code Playgroud)

likeilike单值(例如运营商的工作like 'adamB@a.com'),但不是套.

sql postgresql case-insensitive string-comparison

42
推荐指数
5
解决办法
8万
查看次数

不区分大小写的字符串以Python开头

以下是我如何检查是否mystring以某个字符串开头:

>>> mystring.lower().startswith("he")
True
Run Code Online (Sandbox Code Playgroud)

问题是mystring很长(数千个字符),所以lower()操作需要很多时间.

问题:有更有效的方法吗?

我不成功的尝试:

>>> import re;
>>> mystring.startswith("he", re.I)
False
Run Code Online (Sandbox Code Playgroud)

python string performance startswith case-insensitive

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

PHP的glob()可以以不区分大小写的方式查找文件吗?

我想要一个目录中的所有CSV文件,所以我使用

glob('my/dir/*.CSV')
Run Code Online (Sandbox Code Playgroud)

但是,这不会找到具有小写CSV扩展名的文件.

可以

glob('my/dir/*.{CSV,csv}', GLOB_BRACE);
Run Code Online (Sandbox Code Playgroud)

但有没有办法允许所有混合案例版本?或者这只是一个限制glob()

php glob case-insensitive

40
推荐指数
3
解决办法
2万
查看次数

如何将空格更改为下划线并使字符串不区分大小写?

我有以下问题.在我的应用程序中有一个列表视图.我从listview获取itemname并将其作为字符串传输到webview.如何忽略此字符串的大小写并将空格更改为下划线?

例如:String itemname = "First Topic".我将它转移到下一个活动,并希望忽略大小写并将空格更改为下划线(我想得到first_topic结果).我在webviewactivity中获得了"itemname",并希望按照以下代码执行我所描述的操作:

String filename = bundle.getString("itemname") + ".html";
Run Code Online (Sandbox Code Playgroud)

请帮忙.

java string android case-insensitive replaceall

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

PHP和案例敏感性

在PHP中,变量和常量名称区分大小写,而函数名称则不区分大小写.

据我所知,PHP是发生这种情况的唯一语言.我使用的所有其他语言要么完全区分大小写,要么完全不区分大小写.

为什么PHP 部分区分敏感?

请注意,我不是问哪些名称区分大小写,而是为什么.

更新

我想我可以补充说,对于那些谁觉得我问的利益,下面的列表:

区分大小写

  • 字符串
  • 变量
  • 对象属性
  • 常量,默认情况下

不区分大小写

  • 关键词等
  • 功能
  • 对象方法
  • 常量,如果相应定义

注意:

  • 因此,课程是一个混合包:
    • class关键字是不区分大小写
    • 作为函数的类方法不区分大小写
    • 作为变量和常量的类属性区分大小写
  • 因为字符串区分大小写,所以依赖于字符串的任何内容(例如数组键和值)也都区分大小写

php case-sensitive case-insensitive

38
推荐指数
2
解决办法
3万
查看次数

什么是最有效的不区分大小写的grep用法?

我的目标是匹配属于Yahoo!的电子邮件地址.域名系列.在*nix系统中(我将使用Ubuntu),这些方法中任何一种匹配模式的好处和缺点是什么?

如果还有其他更优雅的解决方案,我无法想象,请分享.

他们来了:

  • 使用grep选项-i:

grep -Ei "@(yahoo|(y|rocket)mail|geocities)\.com"

  • 将字符翻译成所有大写或小写,然后grep:

tr [:upper:] [:lower:] < /path/to/file.txt | grep -E "@(yahoo|(y|rocket)mail|geocities)\.com"

  • 为模式中的每个字符添加一个字符集(下面当然不会像"@ rOcketmail.com"那样匹配,但是如果我检查每个字符的情况,你会知道它会变成什么样):

grep -E "@([yY]ahoo|([yY]|[rR]ocket)[mM]ail|[gG]eo[cC]ities)\.[cC][oO][mM]" /path/to/file.txt

regex linux grep case-insensitive tr

37
推荐指数
1
解决办法
3万
查看次数