# 验证方式
Matcher m= Pattern.compile("^[A-Za-z0-9\\-]+$").matcher("?1-23");
System.out.println(m.find(0));
String regx = "^[A-Za-z0-9\\-]+$";
System.out.println("123-$".matches(regx));
# 仅允许字母和-
"^[A-Za-z0-9\\-]+$"
# 仅包含英文字母、数字和汉字
/*
* 判断字符串中是否仅包含字母数字和汉字
* 各种字符的unicode编码的范围:
* 汉字:[0x4e00,0x9fa5](或十进制[19968,40869])
* 数字:[0x30,0x39](或十进制[48, 57])
* 小写字母:[0x61,0x7a](或十进制[97, 122])
* 大写字母:[0x41,0x5a](或十进制[65, 90])
*/
public static boolean isLetterDigitOrChinese(String str) {
String regex = "^[a-z0-9A-Z\u4e00-\u9fa5]+$";
return str.matches(regex);
}