MID4BNW2Uq-01;Standard Offline - Acc 01;SA\;BATE:GOOGN
我试图像分号一样在分号上拆分上述行:
line.split(";", -1)
。
我需要的结果列表是:
1. MID4BNW2Uq-01
2. Standard Offline - Acc 01
3. SA\;BATE:GOOGN
但相反,由于";"
内的SA\;BATE:GOOGN
,我又得到了一个元素:
1. MID4BNW2Uq-01
2. Standard Offline - Acc 01
3. SA\
4. BATE:GOOGN
我正在寻找一种方法来使.split方法匹配";"
但不是"\;"
。
换句话说,只有在没有" \"的情况下才能拆分分号(;)就在它之前。
我已经考虑过使用正则表达式,但是当谈到它时我完全失败了。 任何帮助将非常感激。 谢谢!
答案 0 :(得分:2)
您正在寻找的是一个名为“negative lookbehind”的零长度断言。
例如,
(?<!a)b
匹配“b”,前面没有“a”,使用负面的lookbehind。
尝试拆分:
(?<!\\);
反斜杠是正则表达式中的特殊字符,因此必须使用额外的反斜杠对其进行转义。