应匹配以下内容:
AAA123
ABCDEFGH123
XXXX123
我能做什么:”。* 123”?
应匹配以下内容:
AAA123
ABCDEFGH123
XXXX123
我能做什么:”。* 123”?
当前回答
试试正则表达式{3,}。这将匹配除新行以外的所有字符。
其他回答
是的,这是可行的,不过要注意。除非你在编译表达式时传递DOTALL标志,否则不会匹配换行符:
Pattern pattern = Pattern.compile(".*123", Pattern.DOTALL);
Matcher matcher = pattern.matcher(inputStr);
boolean matchFound = matcher.matches();
有很多复杂的正则表达式测试和开发工具,但如果你只想在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]等都可以。
[^]应该匹配任何字符,包括换行符。[^CHARS]匹配除CHARS之外的所有字符。如果CHARS为空,则匹配所有字符。
JavaScript的例子:
/a[^]*Z/.test("abcxyz \0\r\n\t012789ABCXYZ") // Returns ‘true’.
试试正则表达式{3,}。这将匹配除新行以外的所有字符。