简单的java正则表达式匹配

时间:2013-09-17 07:40:03

标签: java regex

我需要匹配 “/ EN”, “/ JA” “/ ZH-CN”

我写了这样的正则表达式

String str = "/en";
if(str.matches(".[(en)(ja)(zh\\-cn)]$"))
   System.out.println(str);

这不起作用。请有人帮助

2 个答案:

答案 0 :(得分:3)

使用以下内容(使用pattA|pattB您可以匹配pattA pattB):

"/(en|ja|zh-cn)"
如果您想匹配其他语言代码,请

或以下:

"/[-a-z]+"

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

答案 1 :(得分:2)

您似乎不了解角色类的工作原理。您使用的字符类将匹配(en)ja或{的任何一个字符。 {1}}或z

你需要使用一个小组去做你想做的事情:

h

str.matches("/(?:en|ja|zh-cn)$") 表示'或',我使用了非捕获组|。如果您打算稍后使用“en”,“ja”或“zh-cn”,请使用捕获组(?: ... )