Java 条件正则表达式
我有下面的正则表达式,它验证字符串只包含数字,长度在10到11个字符之间Java 条件正则表达式,java,regex,Java,Regex,我有下面的正则表达式,它验证字符串只包含数字,长度在10到11个字符之间 ^[0-9]{10,11}$ 但是,如果字符串的长度为11,则需要验证第一个字符是否为1。如果字符串的长度为10,则无需进一步验证 有效字符串的示例 3455558899 15554445555 无效字符串的示例 25554445555 85554445555 这在正则表达式中是可能的吗?顺便说一句,此正则表达式将在Java应用程序中使用。您可以在开始时将此正则表达式与可选的1匹配,然后与接下来的10位数字匹配:
^[0-9]{10,11}$
但是,如果字符串的长度为11,则需要验证第一个字符是否为1。如果字符串的长度为10,则无需进一步验证
有效字符串的示例
3455558899
15554445555
无效字符串的示例
25554445555
85554445555
这在正则表达式中是可能的吗?顺便说一句,此正则表达式将在Java应用程序中使用。您可以在开始时将此正则表达式与可选的1匹配,然后与接下来的10位数字匹配:
^1?\d{10}$
这将使该正则表达式在第一个数字为1时匹配11个数字,或者匹配10个数字
正则表达式详细信息:
^:开始
1?:可选择在开始时匹配1
\d{10}:精确匹配10位数字
$:完
在Java中,使用以下字符串构造正则表达式:
String re = "^1?\\d{10}$";
您可以使用此正则表达式,在开始时可选匹配1,然后匹配接下来的10位数字:
^1?\d{10}$
这将使该正则表达式在第一个数字为1时匹配11个数字,或者匹配10个数字
正则表达式详细信息:
^:开始
1?:可选择在开始时匹配1
\d{10}:精确匹配10位数字
$:完
在Java中,使用以下字符串构造正则表达式:
String re = "^1?\\d{10}$";
如果这是一个数值,则更容易转换为Long,然后比较该值而不是regex
String x = {your value};
Long i = Long.valueOf(x);
if(i <= 19999999999L) return true;
如果这是一个数值,则更容易转换为Long,然后比较该值而不是regex
String x = {your value};
Long i = Long.valueOf(x);
if(i <= 19999999999L) return true;
那很好用!谢谢,我真的很感激!那很好用!谢谢,我真的很感激!有趣的解决方案有趣的解决方案