Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中,单词不应以数字开头_Java_Regex - Fatal编程技术网

在Java中,单词不应以数字开头

在Java中,单词不应以数字开头,java,regex,Java,Regex,管柱应符合以下要求: 它由一些用空格隔开的单词组成 2.每个单词中只允许字母、数字、下划线和 3.每个单词必须以字母或引号开头 现在我写了这个,它不符合最后的要求: public boolean test(String string) { return string.matches("[A-Za-z0-9_' \"]+"); } 如果我给一个非法字符串“这个世界从123位开始”,它将返回false,但返回true: public boolean test("there is a word st

管柱应符合以下要求:

它由一些用空格隔开的单词组成

2.每个单词中只允许字母、数字、下划线和

3.每个单词必须以字母或引号开头

现在我写了这个,它不符合最后的要求:

public boolean test(String string) {
return string.matches("[A-Za-z0-9_' \"]+");
}
如果我给一个非法字符串“这个世界从123位开始”,它将返回false,但返回true:

public boolean test("there is a word start with 123digit"){
\\my previous code return true.
\\so someone PLEASE HELP to implement the method so 
\\ it will return false in such situation.
}
同样在这种情况下,它应该返回false:

public boolean test("there is a word start with _underscore"){
\\my previous code return true.
\\so someone PLEASE HELP to implement the method so 
\\ it will return false in such situation.
}

你认为你的正则表达式在做什么?用文字解释一下。这可能有助于解释为什么它不满足要求3。注意:Java允许的字符远远多于A-Z A-Z和0-9。我建议你使用内置工具来检查字符串是否是有效的Java标识符。Character.isJavaIndentiferStart()对于48529个字符,返回true;对于50139个字符,返回true。isJavaIdentifierPart()解释代码。
string.matches("^([A-Za-z'\"][A-Za-z0-9_'\"]* *)+$")