应匹配以下内容:

AAA123
ABCDEFGH123
XXXX123

我能做什么:”。* 123”?


当前回答

有很多复杂的正则表达式测试和开发工具,但如果你只想在Java中使用一个简单的测试工具,这里有一个供你使用:

    String[] tests = {
        "AAA123",
        "ABCDEFGH123",
        "XXXX123",
        "XYZ123ABC",
        "123123",
        "X123",
        "123",
    };
    for (String test : tests) {
        System.out.println(test + " " +test.matches(".+123"));
    }

现在您可以轻松地添加新的测试用例并尝试新的模式。祝你探索正则表达式愉快。

另请参阅

regular-expressions.info /教程

其他回答

不,*将匹配零个或多个字符。您应该使用+,它可以匹配一个或多个。

这个表达式可能更适合你:[A-Z]+123

是的,你可以。这应该有用。

. =除换行符以外的任何字符 \。=实际的点字符 。?= .{0,1} =匹配除换行符0或1之外的任何字符 .* = .{0,} =匹配除换行符以外的任何字符0次或更多次 .+ = .{1,} =匹配除换行符以外的任何字符一次或多次

是的,这是可行的,不过要注意。除非你在编译表达式时传递DOTALL标志,否则不会匹配换行符:

Pattern pattern = Pattern.compile(".*123", Pattern.DOTALL);
Matcher matcher = pattern.matcher(inputStr);
boolean matchFound = matcher.matches();

我不总是用。is表示任意字符。单线模式时异常。\p{all}应该是

String value = "|°¬<>!\"#$%&/()=?'\\¡¿/*-+_@[]^^{}";
String expression = "[a-zA-Z0-9\\p{all}]{0,50}";
if(value.matches(expression)){
    System.out.println("true");
} else {
    System.out.println("false");
}

有很多复杂的正则表达式测试和开发工具,但如果你只想在Java中使用一个简单的测试工具,这里有一个供你使用:

    String[] tests = {
        "AAA123",
        "ABCDEFGH123",
        "XXXX123",
        "XYZ123ABC",
        "123123",
        "X123",
        "123",
    };
    for (String test : tests) {
        System.out.println(test + " " +test.matches(".+123"));
    }

现在您可以轻松地添加新的测试用例并尝试新的模式。祝你探索正则表达式愉快。

另请参阅

regular-expressions.info /教程