当前位置: 首页 > 面试题库 >

在Java中使用正则表达式进行开关声明

戚俊健
2023-03-14
问题内容
void menu() {
    print();
    Scanner input = new Scanner( System.in );
    while(true) {
        String s = input.next();
        switch (s) {
        case "m": print(); continue;
        case "s": stat(); break;
        case "[A-Z]{1}[a-z]{2}\\d{1,}": filminfo( s ); break;
        case "Jur1": filminfo(s); break; //For debugging - this worked fine
        case "q": ; return;
        }
    }
}

似乎我的正则表达式已关闭或我在案例陈述中没有正确使用它。我想要的是一个字符串:以一个大写字母开头,然后以两个小写字母开头,后跟至少一个数字。

我已经检查了regex
API,并尝试了三种变体(贪婪的,勉强的和所有格的量词),却不知道它们的正确用法。还检查了String方法,但没有找到与我的需求相关的方法。


问题答案:

您不能将正则表达式用作开关盒。(考虑一下:Java如何知道您要匹配字符串"[A-Z]{1}[a-z]{2}\\d{1,}"还是正则表达式?)

在这种情况下,您可以做的就是尝试在默认情况下匹配正则表达式。

    switch (s) {
        case "m": print(); continue;
        case "s": stat(); break;
        case "q": return;
        default:
            if (s.matches("[A-Z]{1}[a-z]{2}\\d{1,}")) {
                filminfo( s );
            }
            break;
    }

(顺便说一句,这仅适用于Java 7及更高版本。在此之前,没有打开字符串的权限。)



 类似资料:
  • 问题内容: 示例字符串: 我想先进行匹配,然后将其替换为一些文本,以使字符串变为,然后进行匹配。 问题答案: 令人讨厌的是,Javascript没有提供PCRE递归参数,因此要处理嵌套问题远非易事。但是可以做到的。

  • 本文向大家介绍Java正则表达式使用,包括了Java正则表达式使用的使用技巧和注意事项,需要的朋友参考一下 一:抓取网页中的Email地址 利用正则表达式匹配网页中的文本 将网页内容分割提取 打印结果: 867124664@qq.com 260678675@QQ.com 806208721@qq.com hr_1985@163.com 32575987@qq.com qingchen0501@12

  • 问题内容: 我想匹配这样的电话号码,它应该有3位数字(000,666除外)以及900-999之间的任何数字,然后是-然后是2位数字,然后是- 然后是4位数字。例如:123-75-3456是数学000- 23-3452不是匹配项(否000)915-23-4534不是匹配项(大于900)有人可以帮忙吗?抱歉,忘记添加我尝试的内容,[0-9 && ^ [000,666,[900-999]] {3}-[0

  • 问题内容: 我有一个模式定义为的猫鼬模型- 并且模型定义为- 现在我想从请求对象参数中搜索标题,标签,描述字段,例如 现在,我如何确保也包括任何在标题或描述中找到该术语的结果,而不仅是两个结果都存在。另外,如何在标签数组中搜索匹配的字符串 问题答案: 您可以在猫鼬中使用 $ or 运算符返回匹配项 $ or http://docs.mongodb.org/manual/reference/oper

  • 问题内容: Ruby 有一个很好的方法,可以在单元测试中使用它来断言正则表达式与字符串匹配。 JUnit中是否有类似的东西?目前,我这样做: 问题答案: 如果与用于测试正则表达式匹配项的Hamcrest匹配器一起使用,则如果断言失败,您将收到一条漂亮的消息,指出预期的模式和实际文本。该断言也将更加流利,例如

  • 问题内容: 我有一个带有div的html页面,这些div的 ID 为 s1 , s2 等形式。 我想将CSS属性应用于这些部分/ div的子集(取决于id)。但是,每次添加 div时 ,都必须像这样分别为该部分添加css。 css中是否有类似正则表达式的内容,可用于将样式应用于一组 div 。 问题答案: 您可以设法选择那些元素而无需任何形式的正则表达式,如先前的答案所示,但是要直接回答问题,可以