标签: case-insensitive

获取区分大小写的文件名

我有一个需要在任何平台(Windows、Mac、Linux 等)上运行的 Perl 脚本。它的部分功能是重命名文件,但我不希望它覆盖现有文件。假设该脚本名为“my_rename”,它采用与“rename”函数相同的参数,并且用户执行以下命令:

my_rename test.txt test.TXT
Run Code Online (Sandbox Code Playgroud)

-e "test.txt"如果和-e "test.TXT"都返回 true,就会出现问题。以下是我想在以下条件下处理这种情况的方法:

情况 1:在区分大小写的文件系统上:

  • 中止并出现“test.TXT”存在的错误

情况 2:在不区分大小写的文件系统上,当现有文件名的实际大小写为“test.TXT”时:

  • 发出文件名未更改的警告

情况 3:在不区分大小写的文件系统上,当现有文件名的实际大小写不是“test.TXT”时:

  • 将文件重命名为“test.TXT”

由于该脚本必须是可移植的,因此它不能依赖于系统相关的函数或实用程序。

perl case-insensitive file-rename

4
推荐指数
1
解决办法
384
查看次数

Postgres IN 运算符中不区分大小写?

我的示例 SQL 是

select * from fruits where name in ('Orange','grape','APPLE','ManGO',etc....);//
Run Code Online (Sandbox Code Playgroud)

是否可以在 Postgres 的 IN 运算符中包含 ilike 或 ~* ?

我的解决方案是

select * from fruits where upper(name) in 
(upper('Orange'),upper('grape'),upper('APPLE'),upper('ManGO'),etc....);
Run Code Online (Sandbox Code Playgroud)

我认为这不是正确的方法,请让我知道这种情况的最佳解决方案

sql postgresql case-insensitive sql-in

4
推荐指数
1
解决办法
2676
查看次数

PHP和MySQL的大小写敏感性问题

我试图通过PHP从MySQL数据库返回XML列表,并且遇到区分大小写的问题.这是我正在使用的当前代码

$query = "SELECT * FROM FOO WHERE FOO LIKE '%$term%' ORDER BY FOO";
Run Code Online (Sandbox Code Playgroud)

在我的数据库中,我将名字列为"Joe",因此为了返回XML,我必须输入$ term作为"Joe".我不能用"乔"或"乔"但是想.我不确定我是否可以通过PHP直接完成此操作,或者我是否需要调整MySQL表.

php xml mysql case-sensitive case-insensitive

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

Spring MVC不区分大小写的URL

我已经在Google和stackoverflow上寻找了答案,但不幸的是,所提供的解决方案要么假设有很多关于Spring MVC和Java的先前知识,要么是关于注释的不区分大小写.

因此,我不确定如何使这些解决方案适应我自己的问题,因此这个新问题的原因.

我想做的事听起来很简单.我有一个dispatcher-servlet.xml文件,其中包含以下XML块:

<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <props>
                <prop key="*.htm">pageController</prop>
                <prop key="*.html">pageController</prop>
                <prop key="/cms/*">pageController</prop>
                <prop key="/admin/*">adminController</prop>
            </props>
        </property>
    </bean>
Run Code Online (Sandbox Code Playgroud)

我希望/cms/*/admin/*键不区分大小写,但对Java和Spring MVC都是新手,我不明白我应该怎么做.

例如,即使有人打字/CMS//Cms/我希望它使用pageController,但此刻它只会显示404页面.

是否有人能够向我解释为了达到我想要的结果我必须做些什么?

任何帮助将不胜感激!

编辑:

根据Rupok的回答,我添加了一个类来扩展AntPathMatcher.

不幸的是对此我不熟悉我不知道如何"将其设置回SimpleUrlHandlerMapping".

有人能够指出我正确的方向吗?

java url spring case-insensitive

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

Drupal 7 - 使用db_select不区分大小写LIKE

我无法使用MySQL和Drupal 7获得不区分大小写的查询.这是我的模块代码:

$results = db_select('people_table', 'p')->fields('p');
if (array_key_exists('department', $_GET)) {
    $results->condition('Department', '%' . db_like($_GET['department']) . '%', 'LIKE');
}
return $results->orderBy('Name', 'ASC')->execute();
Run Code Online (Sandbox Code Playgroud)

随着?department=Chemistry在URL中,我得到三个结果.随着?department=chemistry在URL中,我没有得到任何结果.当我尝试时$results->condition('UPPER(Department)'...,我收到此错误:

PDOException:SQLSTATE [42S22]:未找到列:1054'where子句'中的未知列'UPPERDepartment':SELECT p.*FROM {people_table} p WHERE(UPPERDepartment LIKE:db_condition_placeholder_0 ESCAPE'\\')ORDER BY Name ASC;

所以看起来它吃掉了我的括号.我怎么能不区分大小写LIKE

编辑:Department列和整个表上 的排序规则是utf8_bin. 这个答案说:"唯一特别的是utf8_bin,用于比较二进制格式的字符." 我不知道为什么选择这种排序规则,因为表中的所有数据都是英文文本.我可能只是将整理更改为utf8_general_ci.

php mysql drupal case-insensitive drupal-7

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

如何使用重音创建一个Mysql唯一不区分大小写的索引 - (或使用NO collat​​ion)

我正在与整理斗争.我想构建一个对单词具有唯一索引的表,该表不区分大小写,但将"a"与"à"区分开来.这意味着"de"和"dé"应该是2个不同的条目,但de,De,DE,dE应该是相同的.

是否有一个utf8校对工作(似乎不是这样)?有没有办法说mysql不使用任何整理?还有其他解决方案吗?我不想把我的话改成小写或大写

谢谢

mysql indexing collation case-insensitive unique-key

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

弹性搜索中不区分大小写的搜索

我尝试在elasticsearch.yml文件中创建一个条目来创建自定义分析器,就像在gist中提到的那样:https://gist.github.com/1403902

但我得到以下错误 {"error":"RemoteTransportException[[Banner, Robert Bruce][inet[/192.168.1.15:9300]][indices/create]]; nested: MapperParsingException[mapping [type1]]; nested: MapperParsingException[Analyzer [string_lowercase] not found for field [field1]];

我仍然无法弄清楚如何做到这一点.我搜索了stackoverflow相同的并得到了类似的回复(如上面提到的要点中提到的)

请给我一个例子,我可以测试一下.

case-insensitive elasticsearch

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

kendo ui网格过滤器不区分大小写

我正在尝试为kendo网格启用不区分大小写的过滤(服务器端).有没有人知道一种方法将filower(toupper等)注入过滤器以启用不区分大小写的过滤?

背景:

我删除了一个kendo网格来使用来自控制器(EntitySetController.NET 4.5)的数据,所有这些似乎都运行得很好.内联编辑,服务器分页,添加新行等.

为了能够与淘汰赛不区分大小写的过滤,我只想构建具有过滤文本和现场包裹在tolower的过滤器(如建议在这里).我还没有找到使用kendo元素自定义过滤器的方法.

控制器:

public class CategoriesController : EntitySetController<Category, int>
{
    public override IQueryable<Category> Get()
    {
        return _repository.Find().OrderBy(c => c.Name);
    }
}
Run Code Online (Sandbox Code Playgroud)

数据源创建:

var serviceBaseUrl = "api/Categories",
    dataSource = new kendo.data.DataSource({
        type: "odata",
        transport: {
            read: {
                url: serviceBaseUrl,
                dataType: "json"
            }
        },
        schema: {
            // omitted for brevity
        },
        serverFiltering: true,
        serverPaging: true,
        pageSize: 10
});
Run Code Online (Sandbox Code Playgroud)

网格创建:

$("#grid").kendoGrid({
    dataSource: dataSource,
    pageable: true,
    filterable: {
        extra: false,
        operators: {
            string: {
                contains: "Contains",
            } …
Run Code Online (Sandbox Code Playgroud)

.net filtering case-insensitive odata kendo-grid

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

不区分大小写的排序集 - 使用不同的大小写保持相同的字符串

今天我有一个不区分大小写的排序Set如下:

Set<String> set = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
set.add("foo");
set.add("FOO");
set.add("bar");
System.out.println(set.toString());
Run Code Online (Sandbox Code Playgroud)

这个输出是:

[bar, foo]
Run Code Online (Sandbox Code Playgroud)

但我真正想要的是:

[bar, FOO, foo]
Run Code Online (Sandbox Code Playgroud)

也就是说,我希望对集合的排序不区分大小写,但我希望能够在集合中使用具有不同情况的相同字符串(如"foo"和"FOO"),而不丢弃最后一个.

我知道我可以排序List,但在我的情况下,我需要一个Set.

在Java中有这样一种巧妙的方法吗?

java sorting set case-insensitive

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

在Java中使用旧版本创建新地图的优雅方式,同时保持元素的排序相同

我们考虑以下代码:

//...

public Map<String, Integer> getFruits() throws SomeException {
    QueryResult[] queryResults = queryFruits();
    Map<String, Integer> fruits = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
    for (QueryResult qr : queryResults) {
        fruits.put(qr.getField("Name").toString(), (Integer) rec.getField("ArticleNumber"));
    }
    return fruits;
}

//...

public static void main(String args[]) {
    App app = new App();
    Map<String, Integer> originalFruits = app.getFruits();
    System.out.println(originalFruits.keySet());
}
Run Code Online (Sandbox Code Playgroud)

- 执行结果将是

[Apple, banana, cherry, Dragon_Fruit, Papaya ]
Run Code Online (Sandbox Code Playgroud)

在那之后,我正在打电话getApprovedFuits()并传递originalFruits给它,同时whiteListedFruitNames:

public Map<String, Integer> getApprovedFruits(Map<String, Integer> fruits, Set<String> whiteListedFruitNames) {
    Map<String, Integer> approvedFruits = new …
Run Code Online (Sandbox Code Playgroud)

java sorting dictionary case-insensitive treemap

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