如何匹配正则表达式中的“任何字符”?

2022-08-31 04:32:57

应匹配以下内容:

AAA123
ABCDEFGH123
XXXX123

我可以做: ?".*123"


答案 1

是的,可以。这应该有效。

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

答案 2

是的,这将起作用,但请注意,除非您在编译表达式时传递DOTALL标志,否则不会匹配换行符:.

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