【发布时间】:2020-06-17 16:38:32
【问题描述】:
给定一个字符串
1 3 2 1 9 1 bla 3 4 3
我发现了
/b[1-4]/b
将仅返回数字 1 2 3 4,如 this 所示,但 String[] input = args[0].split("\b[1-4]\b"); 不返回
{"1","3","2","1","1","3","4","3"}
【问题讨论】:
-
那么
1 3 23 1 9 1 bla92 3 4 3应该产生什么? -
"1 3 1 1 3 4 3"
-
只匹配
"\\b[1-4]\\b" -
@WiktorStribiżew - 我从您的帖子中学到了很多关于正则表达式模式的知识。只是好奇
[1-4]是否还不够?如果没有,如果我只使用[1-4]会出现什么问题? -
@ArvindKumarAvinash 抱歉,我刚刚使用了 OP 模式,但修复了反斜杠问题。 OP 似乎使用
\b[1-4]\b正则表达式来匹配1、2、3或4作为整个单词,即仅当它们未包含其他数字、字母或下划线时。不知道这是否真的是 OP 需要的。有一件事是肯定的:String#split与Matcher#find的工作方式不同,这是主要问题。