如何匹配Java正则expression式中的“任何字符”?

以下内容应该匹配:

AAA123 ABCDEFGH123 XXXX123 

我可以吗: ".*123"

是的你可以。 这应该工作。

  • . =任何字符
  • \. =实际的点字符
  • .? = .{0,1} =匹配任何零次或一次字符
  • .* = .{0,} =匹配任何零次或多次的字符
  • .+ = .{1,} =匹配任何一个或多个字符

是的,这将工作,但请注意. 将不会匹配换行符,除非在编译expression式时传递DOTALL标志:

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

有很多复杂的正则expression式testing和开发工具,但是如果你只是想在Java中使用一个简单的testing工具,下面是一个供你使用的testing工具:

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

现在,您可以轻松添加新的testing用例并尝试新的模式。 玩得开心探索正则expression式。

也可以看看

  • regular-expressions.info/Tutorial

使用模式. 匹配任何字符一次, .*匹配任何字符零次或多次, .+匹配任何字符一次或多次。

不, *会匹配零个或多个字符。 您应该使用+ ,而不是匹配一个或多个。

这个expression可能对你更好: [AZ]+123

尝试正则expression式。{3,}。 这将匹配所有字符期望一个新的行。