6

我找到了这个线程,其中一个用户发布了以下代码行:

String[] digits2 = number.split("(?<=.)");

我已经咨询了几个来源——比如12——来破译这段代码的含义,但我无法弄清楚。谁能解释 split() 方法中的参数是什么意思?

编辑:对于任何与我有相同问题的人,这是另一个有用的链接

4

2 回答 2

4

这是一个积极的回顾。整体表达的意思是“在任何字符之后,但不捕获任何东西”。本质上,如果字符串看起来像

ABC

那么匹配将发生在|, 字符之间。

A|B|C|
于 2013-05-20T02:06:03.067 回答
1

.split("")(在空字符串/模式上)将匹配正则表达式开头的空字符串。这是一个额外的空字符串字符,不受欢迎。 (?<=.)是一个零宽度断言(不消耗任何字符),它匹配零宽度空格后跟任何字符(后跟因为它是后视)。这会拆分每个字符之间的空字符串,但不会拆分第一个字符和字符串开头之间的空格。

于 2013-05-20T02:07:10.027 回答