正则表达式不适用于单个字符

MLS*_*MLS 5 java regex

我正在尝试编写正则表达式Java来评估两个用()分隔的字符串,

Example: (test1,test2)
Run Code Online (Sandbox Code Playgroud)

我写了下面的代码

public static void main(String[] a){
    String pattern = "\\([a-zA-Z0-9]+,[a-zA-Z0-9]+.\\)";
    String test = "(test1,test2)";
    System.out.println(test.matches(pattern));
}
Run Code Online (Sandbox Code Playgroud)

它按预期工作,并true在下面的情况下打印

String test = "(test1,test2)";

String test = "(t,test2)";
Run Code Online (Sandbox Code Playgroud)

但是false当我发送到下面时它正在打印

String test = "(test1,t)";
Run Code Online (Sandbox Code Playgroud)

这很奇怪,因为我之前和之后都使用相同的表达方式,

它返回true了(t,test2),但不(test1,t)

请告诉我这个正则表达式中缺少的内容.我需要它来计算并返回true的(test1,t)

blh*_*ing 7

.你的正则表达式中不需要(匹配一个字符)..从你的正则表达式删除所以它成为"\\([a-zA-Z0-9]+,[a-zA-Z0-9]+\\)"它应该工作.