如何在 switch case 中匹配 Java 正则表达式?

Jav*_*per 1 java regex

我想编写一个 Java 代码,以便对以“Foo”开头的任何单词执行某些操作,对所有以“Bar”开头的单词执行其他操作。

for(String str: stringList) {
    switch (str) {
        case Foo*: // do something. then break.

        case Bar*: // do something else. break.
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,我如何在 java 中进行这个正则表达式匹配?

Tim*_*sen 5

Switch 语句需要字符串文字,目前不接受正则表达式模式。但是你可以很容易地实现你想要的逻辑ifelse

for (String str: stringList) {
    if (str.matches("Foo.*")) {
        // do something
    }
    else if (str.matches("Bar.*")) {
        // do something else. break.
    }
}
Run Code Online (Sandbox Code Playgroud)

我们可以使用String#startsWith或子字符串,但我曾经matches说明可以使用正则表达式模式。

演示