应匹配以下内容:

AAA123
ABCDEFGH123
XXXX123

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


当前回答

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

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

其他回答

我喜欢以下几点:

[!- ~]

它匹配所有字符代码,包括特殊字符和正常的A-Z, A-Z, 0-9

https://www.w3schools.com/charsets/ref_html_ascii.asp

例如faker.internet.password(20, false, /[!-~]/)

会生成这样的密码:0+>8*nZ\\*-mB7Ybbx,b>

使用模式。匹配任意字符一次,.*匹配任意字符0次或多次,.+匹配任意字符1次或多次。

试试正则表达式{3,}。这将匹配除新行以外的所有字符。

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

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

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

另请参阅

regular-expressions.info /教程

我所见过的最常见的编码方法是使用字符类,其成员构成所有可能字符集的分区。

通常人们把它写成[\s\ s](空白或非空白),不过[\w\ w]、[\d\ d]等都可以。