java - (java.util.regex.Pattern 的问题)检查字符串中的数字和字母

标签 java string design-patterns

我的任务是检查新字符串(登录名)是否符合某些规则 这些是规则:

1. It has to be 1-20 symbols length
2. It may consist of digits, letters (a-z,A-Z), dots and "-"
3. The first symbol has to be a letter (a-z,A-Z)
4. It has to end with a letter or a digit

所以我想到了使用 java.util.regex.Pattern,但遇到了一些问题。这就是我所拥有的:

    String login = "a.bc-.52";
    Pattern p1 = Pattern.compile("([a-zA-Z]{1}[a-zA-Z\\d.-]{0,18}[a-zA-Z\\d])");
    Matcher m1 = p1.matcher(login);
    boolean b = m1.matches();

我无法检查字符串是否以字母或数字结尾。我想我可以拆分字符串并用不同的模式检查它的部分,但有些事情告诉我,它可以更容易地完成。

如果这是一个愚蠢的问题或者我犯了错误,我很抱歉。也许有更简单的方法,请告诉我。谢谢

最佳答案

^[a-zA-Z]{1}[a-zA-Z\d.-]{0,18}[a-zA-Z\d]$

^ <- 确保字符串以字母开头

$ <- 确保字符串以数字字母结尾

关于java - (java.util.regex.Pattern 的问题)检查字符串中的数字和字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12252473/

相关文章:

java - 序列化 - 如何保护序列化的 JAVA 对象?

c# - 用于验证逻辑 && || 的正则表达式字符串中的运算符

design-patterns - 使用MVC建立 object 的阶层 list

c# - 使用 C#/Java/Visual Basic 填充 Word 2007 模板

java - 将命令式代码转换为非连续一个实现的声明式代码

java - 如何将字符串从一个 Activity 传递到另一个 Activity ?

java - 使用 Java Reflection 来确定要实例化哪个类

c - 用 C 语言设计一个简单的 GUI 框架

java - 使用 Java 将 MongoDB 中的所有 ID 添加到数组中

php - 通过添加 GET 参数来操作 url 字符串