小编Ken*_*net的帖子

用正则表达式\ w\w*拆分字符串?\ w +?

我正在学习regexp,并认为我开始抓紧了.但是之后...

我试图拆分一个字符串,我需要帮助来理解这样一个简单的事情:

String input = "abcde";
System.out.println("[a-z] " + Arrays.toString(input.split("[a-z]")));
System.out.println("\\w " + Arrays.toString(input.split("\\w")));
System.out.println("\\w*? " + Arrays.toString(input.split("\\w*?")));
System.out.println("\\w+? " + Arrays.toString(input.split("\\w+?")));

The output is
[a-z] - []
\w    - []
\w*?  - [, a, b, c, d, e]
\w+?  - []
Run Code Online (Sandbox Code Playgroud)

为什么两个第一行中的任何一行都没有在任何字符上拆分字符串?第三个表达式\ w*?,(问号防止贪婪)按照我的预期工作,在每个字符上分割字符串.星号,零个或多个匹配项返回一个空数组.

我在NotePad ++和程序中尝试了表达式,它显示了5个匹配项,如:

Scanner ls = new Scanner(input);
while(ls.hasNext())
    System.out.format("%s ", ls.findInLine("\\w");

Output is: a b c d e
Run Code Online (Sandbox Code Playgroud)

这真让我困惑

java regex

5
推荐指数
2
解决办法
2万
查看次数

标签 统计

java ×1

regex ×1