java - 正则表达式的模式

标签 java regex

我是正则表达式的新手,我想验证至少包含 6 个字符、最多 30 个字符的单词,并且只能以字母开头,但它可以包含从第二个位置开始的数字和下划线。我使用了此模式,但在测试中失败了。

String pattern = "^[A-Za-z][A-Za-z0-9_]*{6,30}$";

最佳答案

您可以使用此正则表达式:

String pattern = "^[A-Za-z][A-Za-z0-9_]{5,29}$";
  • 不得在范围量词 {5,29} 之前使用 *
  • 使用 {5,29},因为开头已有 1 个字符。

您还可以使用这个缩短的正则表达式:

String pattern = "^[A-Za-z]\\w{5,29}$";

由于\w(单词字符)相当于[A-Za-z0-9_]

关于java - 正则表达式的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39603647/

相关文章:

java - 我得到下一个输出 :The class 'misBeans.Datos' does not have a readable property 'enlace'

java - jackson 有条件的@JsonUnwrapped

java - 子类java中具有相同名称的属性

regex - 正则表达式从电子邮件中获取域名

Java USSD 代码正则表达式模式

java - SunCertPathBuilderException 尽管设置了信任库属性

java - Tomcat webapp 错误 - 应用程序启动线程 [AWT-Windows] 但未能停止它 - 内存泄漏?

php - 如何在回调函数中使用变量?

Python - 正则表达式 - True 或 False

regex - 流利的正则表达式:将多个值分组