Java 这个正则表达式是如何做到这一点的?

Java 这个正则表达式是如何做到这一点的?,java,regex,Java,Regex,我想在我的程序中使用下面的表达式,但我不知道这个正则表达式做什么! 请帮帮我 "(?=(?!^)[,;.:])|(?<=[,;.:])" “(?=(?!^)[,;:])|(?表达式匹配满足以下两个条件之一的0长度字符串: 前面是,;:中的一个,但不适用于主题字符串开头(位置0)之前的0长度字符串。因此主题字符串“在位置0处不匹配,仅在位置1处匹配,因为有以下替代方法。这是通过正向前瞻(?=)和反向前瞻(?!)完成的 在它后面是一个,;:。这是通过正向查找来完成的(?如果你不知道它的功能

我想在我的程序中使用下面的表达式,但我不知道这个正则表达式做什么! 请帮帮我

"(?=(?!^)[,;.:])|(?<=[,;.:])"

“(?=(?!^)[,;:])|(?表达式匹配满足以下两个条件之一的0长度字符串:

  • 前面是
    ,;:
    中的一个,但不适用于主题字符串开头(位置0)之前的0长度字符串。因此主题字符串
    在位置0处不匹配,仅在位置1处匹配,因为有以下替代方法。这是通过正向前瞻(?=)和反向前瞻(?!)完成的

  • 在它后面是一个
    ,;:
    。这是通过正向查找来完成的(?如果你不知道它的功能,为什么要使用它?因为我想拆分一个字符串,而这个正则表达式可以做到这一点!就像这个字符串aa,.1..a。它拆分为以下字符[aa][,][.][1][.][a][.]我不知道这个正则表达式如何做到这一点,所以你知道它是做什么的-你只需要帮助理解它是如何做到的。那么为什么aa可以拆分?因为aa没有[,;:]中的任何一个,但是拆分了!在aa之前不是[,:;]中的任何一个,aa也不是以[,;:]结尾的!但是分裂了!@taher
    aa
    没有分裂。匹配只在
    aa
    之后。这就是为什么两个
    a
    s没有分开的原因。@taher啊,我没有看到空格。
    aa.
    被分裂成
    aa
    。我想你看到了空格,但它在那里。@taher
    aa.,;123 a1.1..a
    被分裂了到12个部分:
    aa§.§,§;§123 a1§.§.§.§.§.§.§.§§§§§§§§
    ,匹配位置由
    §§§
    指示。我不确定您还期望/得到什么。