This question already has answers here:
How to split a comma separated String while ignoring escaped commas?
(4个答案)
2年前关闭。
我试图像这样在分号上分割以上行:
我需要的结果列表是:
但是相反,由于
我正在寻找一种使.split方法匹配
换句话说,仅在分号(;)前面没有“ \”的情况下才进行拆分。
我已经考虑过使用正则表达式,但是在使用它时我完全不知所措。
任何帮助将非常感激。
谢谢!
使用负向后搜索匹配不以“ a”开头的“ b”。
尝试对此进行拆分:
反斜杠是正则表达式中的特殊字符,因此必须使用额外的反斜杠对其进行转义。
(4个答案)
2年前关闭。
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方法匹配
";"
但不匹配"\;"
的方法。换句话说,仅在分号(;)前面没有“ \”的情况下才进行拆分。
我已经考虑过使用正则表达式,但是在使用它时我完全不知所措。
任何帮助将非常感激。
谢谢!
最佳答案
您正在寻找的是一个零长度的断言,称为“ negative lookbehind”。
例如,
(?<!a)b
使用负向后搜索匹配不以“ a”开头的“ b”。
尝试对此进行拆分:
(?<!\\);
反斜杠是正则表达式中的特殊字符,因此必须使用额外的反斜杠对其进行转义。