应匹配以下内容:
AAA123
ABCDEFGH123
XXXX123
我能做什么:”。* 123”?
应匹配以下内容:
AAA123
ABCDEFGH123
XXXX123
我能做什么:”。* 123”?
当前回答
实例问题的具体解决方案:-
尝试[A-Z]*123$将匹配123,AAA123, ASDFRRF123。如果你需要至少一个字符在123使用[a - z]+123$。
问题的通解(如何匹配正则表达式中的“任意字符”):
如果您正在寻找任何包含空白的内容,您可以尝试[\w|\ w]{min_char_to_match,}。 如果您正在尝试匹配除空白之外的任何内容,您可以尝试[\S]{min_char_to_match,}。
其他回答
是的,这是可行的,不过要注意。除非你在编译表达式时传递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");
}
不,*将匹配零个或多个字符。您应该使用+,它可以匹配一个或多个。
这个表达式可能更适合你:[A-Z]+123
试试正则表达式{3,}。这将匹配除新行以外的所有字符。
[^]应该匹配任何字符,包括换行符。[^CHARS]匹配除CHARS之外的所有字符。如果CHARS为空,则匹配所有字符。
JavaScript的例子:
/a[^]*Z/.test("abcxyz \0\r\n\t012789ABCXYZ") // Returns ‘true’.