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

时间:2015-05-15 12:16:40

标签: java regex

有人可以解释以下正则表达式的含义吗?

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

强制用户在其用户名中至少包含一个号码。

如何修改它以删除此约束?

1 个答案:

答案 0 :(得分:1)

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

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

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

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

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