Java Regex元字符

时间:2013-05-20 02:03:21

标签: java regex string

我找到this个帖子,其中一个用户发布了以下代码行:

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

我已经咨询过几个来源 - 比如12 - 来破译这段代码的含义,但我无法弄明白。任何人都可以解释split()方法中的参数是什么意思吗?

修改:对于与我有同样问题的人,这是另一个有帮助的link

2 个答案:

答案 0 :(得分:4)

这是positive lookbehind。整体表达意味着“在任何角色之后,但没有捕获任何东西”。基本上,如果字符串看起来像

ABC

然后匹配将发生在|,字符之间。

A|B|C|

答案 1 :(得分:1)

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