简单java正则表达式匹配

简单java正则表达式匹配,java,regex,Java,Regex,我需要匹配 /嗯, /嗯,, /中弘中国 我写过这样的正则表达式 String str = "/en"; if(str.matches(".[(en)(ja)(zh\\-cn)]$")) System.out.println(str); 这不起作用。有人能帮忙吗请使用下面的用法使用pattA | pattB你可以匹配pattA或pattB: 如果要匹配其他语言代码,请执行以下操作: "/[-a-z]+" "/[a-z]{2}(-[a-z]{2})?" 你似乎不明白角色类是如何工作的。

我需要匹配 /嗯, /嗯,, /中弘中国

我写过这样的正则表达式

String str = "/en";
if(str.matches(".[(en)(ja)(zh\\-cn)]$"))
   System.out.println(str);
这不起作用。有人能帮忙吗请使用下面的用法使用pattA | pattB你可以匹配pattA或pattB:

如果要匹配其他语言代码,请执行以下操作:

"/[-a-z]+"

"/[a-z]{2}(-[a-z]{2})?"

你似乎不明白角色类是如何工作的。您正在使用的字符类将匹配或e、n、或j、a、z或h等的任意一个字符

你需要使用一个小组来完成你想做的事情:

str.matches("/(?:en|ja|zh-cn)$")

| is表示“或”,我使用了非捕获组:。使用捕获组。。。如果您打算稍后使用en、ja或zh cn。

是否在regexps中见过此字符-|?是否在a-z之前有a-?vikingsteve,-也可以在a-z之后。如果没有-,它将与zh cn不匹配。我更喜欢在[]的开头加上-。如果它在中间使用,它应该是逃脱的-匹配-字面上的。
str.matches("/(?:en|ja|zh-cn)$")