Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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 String.matches()意外返回false。_Java_Regex_String - Fatal编程技术网

Java String.matches()意外返回false。

Java String.matches()意外返回false。,java,regex,string,Java,Regex,String,我想写一个程序来解释比赛结果。然而,为了做到这一点,我需要使用正则表达式来测试字符串是否与使用String.matches(stringregex)方法的特定模式匹配。 当使用此方法时,我希望返回true,但返回false 使用以下字符串作为正则表达式模式,一些字符串返回true,另一些字符串返回false,此时也应返回true: regex = "[ ]*[1-9]+[ ]+[a-zA-Z]+[ ]+[a-zA-Z]+[ ]+[a-zA-Z]+[ ]?[a-zA-Z]*[ ]?[a-zA-Z]

我想写一个程序来解释比赛结果。然而,为了做到这一点,我需要使用正则表达式来测试字符串是否与使用
String.matches(stringregex)
方法的特定模式匹配。 当使用此方法时,我希望返回
true
,但返回
false

使用以下字符串作为正则表达式模式,一些字符串返回
true
,另一些字符串返回
false
,此时也应返回
true

regex = "[ ]*[1-9]+[ ]+[a-zA-Z]+[ ]+[a-zA-Z]+[ ]+[a-zA-Z]+[ ]?[a-zA-Z]*[ ]?[a-zA-Z]*[ ]?[a-zA-Z]*[ ]?[a-zA-Z]*[ ]?[a-zA-Z]*[ ]?[1-9]+[ ]+[1-9]+[ ]+[0-9:.]+[ ]+"
以下是使用
string.matches(string regex)
方法返回
true
的一些字符串:

" 1 Ryan Kepshire Crown Point 31 4 16:31 "
" 2 Matthew Mosak Crown Point 34 4 16:44 "
" 3 Dylan Wallace Crown Point 36 4 16:58 "
" 4 Nicholas Zak Hanover Central 51 6 17:08 "
" 5 Joshua Whitaker Crown Point 37 4 17:16 "
" 8 Collin Allen Hobart 64 8 17:23 "
" 9 Zachary Hoover Crown Point 29 4 17:29 "
" 6 Christopher Ramos River Forest 103 12 17:18 "
" 7 Boyer Hunter Lowell 78 10 17:20 "
" 10 Miguel Tapia Merrillville 98 11 17:32 "
以下是使用
string.matches(string regex)
方法返回
false
的一些字符串:

" 1 Ryan Kepshire Crown Point 31 4 16:31 "
" 2 Matthew Mosak Crown Point 34 4 16:44 "
" 3 Dylan Wallace Crown Point 36 4 16:58 "
" 4 Nicholas Zak Hanover Central 51 6 17:08 "
" 5 Joshua Whitaker Crown Point 37 4 17:16 "
" 8 Collin Allen Hobart 64 8 17:23 "
" 9 Zachary Hoover Crown Point 29 4 17:29 "
" 6 Christopher Ramos River Forest 103 12 17:18 "
" 7 Boyer Hunter Lowell 78 10 17:20 "
" 10 Miguel Tapia Merrillville 98 11 17:32 "
我需要帮助确定为什么底部的三个字符串未通过正则表达式测试,而顶部的7个字符串通过了测试

[ ]*[0-9]+[ ]+[a-zA-Z]+[ ]+[a-zA-Z]+[ ]+[a-zA-Z]+[ ]?[a-zA-Z]*[ ]?[a-zA-Z]*[ ]?[a-zA-Z]*[ 
     ^ 
]?[a-zA-Z]*[ ]?[a-zA-Z]*[ ]?[0-9]+[ ]+[0-9]+[ ]+[0-9:.]+[ ]+
                             ^         ^    
您的正则表达式不允许整数中的
0
。这就是它失败的原因。请参阅此处

我已将其修改为接受
0

例如,
[1-9]+
将不接受
10

“6克里斯托弗·拉莫斯河森林
103
12 17:18”//由于
103

“7 Boyer Hunter Lowell 78
10
17:20”//由于
10

10
Miguel Tapia Merrillville 98 11 17:32//由于
10

您的正则表达式不允许整数中的
0
。这就是它失败的原因。请参阅此处

我已将其修改为接受
0

例如,
[1-9]+
将不接受
10

“6克里斯托弗·拉莫斯河森林
103
12 17:18”//由于
103

“7 Boyer Hunter Lowell 78
10
17:20”//由于
10


10
Miguel Tapia Merrillville 98 11 17:32//由于
10

而失败,您只需将字符类从
[1-9]
更改为
[0-9]
谢谢您的关注。我真不敢相信我错过了。而且我从未见过regex101.com。这是一个很好的资源。谢谢你的关注。我真不敢相信我错过了。而且我从未见过regex101.com。这是一个很好的资源。