java - 至少包含一个数字的字符串的正则表达式

标签 java regex

谁能解释一下下面的正则表达式是什么意思?

^(?=.*[\p{L}\p{M}0-9]).{6,50}$

它强制用户的用户名中至少有一个数字。

我应该如何修改它以移除此约束?

最佳答案

您需要删除前瞻中的 0-9 约束集:

^(?=.*[\p{L}\p{M}]).{6,50}$

现在,它允许字符串包含除换行符以外的任何符号,出现次数为 6 到 50 次,并且至少包含一个 Unicode 字母。

要在 Java 中使用它,您需要双转义反斜杠:

String pattern = "^(?=.*[\\p{L}\\p{M}]).{6,50}$";

关于java - 至少包含一个数字的字符串的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30259356/

相关文章:

java - Maven Surefire 适当使用Exclude

java - 将 Hibernate Sessions 功能与 Spring Data JPA 一起使用

用于查找未转义字符的 Python 正则表达式

regex - 解析二维文本

regex - 在Dart中获取与RegExp匹配的所有子字符串的最佳方法

java - 使用 Mongodb 进行一对多映射

java - 绘制圆圈并将其设置为在 Canvas 上可见

java - 自动生成值对象

c++ - c++ regex/flex++ 中的模式 {sp} 是什么意思?

javascript - 日期时间格式 正则表达式 YYYY/MM/DD hh :mm:ss