Java regexp使用';%拆分字符串';字符但忽略';\%';

Java regexp使用';%拆分字符串';字符但忽略';\%';,java,regex,Java,Regex,我需要一个正则表达式来使用%分隔符拆分字符串。但是,如果在%之前有一个\,则应忽略\%。 所以%-分隔符 \%-不是分隔符。 从字符串“你好%username%,你好吗?\%”我想得到[“你好”,“用户名”,“你好吗?\%”]数组。 现在我得到了[^(\\%)]?%但是当我在String类的split方法中使用它时,我丢失了数组中每个字符串的首字母您可以使用负lookbehind正则表达式进行拆分: (?<!\\)% 您可以使用负lookbehind正则表达式进行拆分: (?<!\

我需要一个正则表达式来使用
%
分隔符拆分字符串。但是,如果在
%
之前有一个
\
,则应忽略
\%
。 所以
%
-分隔符
\%
-不是分隔符。 从字符串
“你好%username%,你好吗?\%”
我想得到
[“你好”,“用户名”,“你好吗?\%”]
数组。
现在我得到了
[^(\\%)]?%
但是当我在String类的split方法中使用它时,我丢失了数组中每个字符串的首字母

您可以使用负lookbehind正则表达式进行拆分:

(?<!\\)%

您可以使用负lookbehind正则表达式进行拆分:

(?<!\\)%

如果您接受转义分隔符,则必须接受转义。语言就是这样,不能绕开它。如果在%之前有一个\场景,就没有
,不要这样做。因为不知道这一点,所以选择了垃圾答案。如果你尊重转义符,那么你必须尊重转义符。语言就是这样,不能绕开它。如果在%
之前有一个\场景,就没有
,不要这样做。因为不知道这一点,所以选择了垃圾答案。