我需要一个正则表达式来使用%
分隔符拆分字符串。但是,如果在\
之前有一个%
,则应忽略\%
。
所以%
- 分隔符
\%
- 不是分隔符。
从字符串"Hi %username%, how are you? \%"
我想得到["Hi ", "username", ", how are you? \%"]
数组。
现在我最终得到[^(\\%)]?%
但是当我在String类的split方法中使用它时,我丢失了数组中每个字符串的第一个字母
答案 0 :(得分:3)
您可以使用负向lookbehind正则表达式进行拆分:
(?<!\\)%
(?<!\\)
是一种负面的背后隐喻,声称我们在\
之前没有反斜杠%
。
对于Java使用:
String[] arr = string.split("(?<!\\\\)%");