【问题标题】:Create an example that fails if UNICODE_CASE is turned off, but matches when turned on创建一个如果 UNICODE_CASE 关闭则失败但打开时匹配的示例
【发布时间】:2018-09-28 13:13:10
【问题描述】:

我尝试了很多变体,我什至尝试明确关闭 UNICODE_CASE,但每当我使用 CASE_INSENSITIVE 时,它都会匹配。

    String regex = "(?-u)\u004d"; // M
    String text = "\u006d"; // m
    Pattern pattern = Pattern.compile(regex,
            Pattern.CASE_INSENSITIVE
            //   |Pattern.UNICODE_CASE
    );
    Matcher matcher = pattern.matcher(text);
    if (matcher.find()) {
        System.out.println("Match!");
        return;
    }
    fail("No match");

【问题讨论】:

    标签: java regex unicode


    【解决方案1】:

    您需要不属于 US-ASCII 的字符,例如:

    String regex = "\u00E0"; // à
    String text = "\u00C0"; // À
    

    只有在你开启Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE时才匹配

    【讨论】:

      猜你喜欢
      • 2014-10-08
      • 1970-01-01
      • 2022-11-01
      • 2016-01-22
      • 2014-01-04
      • 2016-02-13
      • 2011-10-28
      • 2021-05-11
      • 1970-01-01
      相关资源
      最近更新 更多