Java 正则表达式:在什么情况下,`/(?!^)/`的结果与`/`不同?
显然,Java中的Java 正则表达式:在什么情况下,`/(?!^)/`的结果与`/`不同?,java,regex,Java,Regex,显然,Java中的split函数已从Java7更改为Java8。 (详情请参阅: ) 一些人建议使用split(“?!^”)而不是split(“”(在Java7中) 我的主要问题是如何解释/(?!^)/?是否存在与/不同的情况 首先,建议的正则表达式是split((?!^)”(与您发布的无效正则表达式相反)(?!^)是一个匹配除^(字符串的行距)之外的任何位置的字符串 正如您已经提到的,split()的行为在中发生了更改,但是开始时的零宽度匹配不会产生这样的空前导子字符串 因此,如果您使用spl
split
函数已从Java7更改为Java8。
(详情请参阅:
)
一些人建议使用split(“?!^”)
而不是split(“”
(在Java7中)
我的主要问题是如何解释
/(?!^)/
?是否存在与/
不同的情况 首先,建议的正则表达式是split((?!^)”
(与您发布的无效正则表达式相反)(?!^)
是一个匹配除^
(字符串的行距)之外的任何位置的字符串
正如您已经提到的,split()
的行为在中发生了更改,但是开始时的零宽度匹配不会产生这样的空前导子字符串
因此,如果您使用split((?!^)”)
您将获得与Java版本无关的相同行为。可以看看这个吗?