我需要匹配 “/ EN”, “/ JA” “/ ZH-CN”
我写了这样的正则表达式
String str = "/en";
if(str.matches(".[(en)(ja)(zh\\-cn)]$"))
System.out.println(str);
这不起作用。请有人帮助
答案 0 :(得分:3)
使用以下内容(使用pattA|pattB
您可以匹配pattA
或 pattB
):
"/(en|ja|zh-cn)"
如果您想匹配其他语言代码,请或以下:
"/[-a-z]+"
"/[a-z]{2}(-[a-z]{2})?"
答案 1 :(得分:2)
您似乎不了解角色类的工作原理。您使用的字符类将匹配(
或e
或n
或)
或j
或a
或{的任何一个字符。 {1}}或z
等
你需要使用一个小组去做你想做的事情:
h
str.matches("/(?:en|ja|zh-cn)$")
表示'或',我使用了非捕获组|
。如果您打算稍后使用“en”,“ja”或“zh-cn”,请使用捕获组(?: ... )
。