我最近在教科书中遇到过这个问题:
我想写一个方法来检查一个字符串是否有:
我试图通过Regx解决它,而不是遍历每个角色;这是我到目前为止所得到的:
String regx = "[a-z0-9]{10,}";
但这只符合前两个条件。我该如何处理第三个条件?
答案 0 :(得分:4)
您可以使用正向前瞻获取第三个条件,如下所示:
^(?=(?:.*\d){3,})[a-z0-9]{10,}$
^
表示字符串的开头。(?= ... )
是正向前瞻,它将搜索整个字符串以匹配(?=
和)
之间的任何内容。(?:.*\d){3,}
在字符串中的任意位置匹配至少3位数。
.*\d
匹配以任何(或无)字符开头的数字(如果省略则只有连续的数字匹配)。{3,}
匹配.*\d
中的三个或更多个。(?: ... )
是一个非捕获组。$
表示字符串结束。