使用正则表达式检查字符串是否以数字字符开头和结尾

时间:2013-08-02 14:35:12

标签: java regex

我正在尝试

String string = "123456";    
if(string.startsWith("[0-9]") && string.endsWith("[0-9]")){
                        //code
                    }

永远不会调用if子句。

5 个答案:

答案 0 :(得分:19)

不要使用正则表达式:

Character.isDigit(string.charAt(0)) && 
                              Character.isDigit(string.charAt(string.length()-1))

(见Character.isDigit()

答案 1 :(得分:9)

startsWith()中的方法endsWith()String只接受字符串,而不是正则表达式。

答案 2 :(得分:4)

您可以使用:

String string = "123test123";
if(string.matches("\\d.*\\d"))
{
    // ...
}

答案 3 :(得分:4)

您可以matches使用String方法:

public static void main(String[] args) throws Exception {
    System.out.println("123456".matches("^\\d.*?\\d$"));
    System.out.println("123456A".matches("^\\d.*?\\d$"));
    System.out.println("A123456".matches("^\\d.*?\\d$"));
    System.out.println("A123456A".matches("^\\d.*?\\d$"));
}

输出:

true
false
false
false

答案 4 :(得分:0)

请按照代码段进行操作。

String variableString = "012testString";
Character.isDigit(string.charAt(0)) && variableString.Any(c => char.IsUpper(c));