regexp使用'%'分割字符串性格但忽略' \%'

时间:2018-02-12 18:44:07

标签: java regex

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

1 个答案:

答案 0 :(得分:3)

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

(?<!\\)%

(?<!\\)是一种负面的背后隐喻,声称我们在\之前没有反斜杠%

RegEx Demo

对于Java使用:

String[] arr = string.split("(?<!\\\\)%");