我正在尝试拆分一个String
。
groovy:000> print "abc,def".split(",");
[abc, def]===> null
groovy:000>
但我需要在管道上拆分它,而不是逗号,但我没有得到想要的结果:
groovy:000> print "abc|def".split("|");
[, a, b, c, |, d, e, f]===> null
groovy:000>
因此,我的第一选择当然是从竖线(|
)切换到逗号(,
)作为分隔符。
但现在我很好奇:为什么这不起作用?退出管道(\|
)似乎没有帮助:
groovy:000> print "abc|def".split("\|");
ERROR org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed, groovysh_parse: 1: unexpected char: '\' @ line 1, column 24.
print "abcdef".split("\|");
^
1 error
|
at java_lang_Runnable$run.call (Unknown Source)
groovy:000>
2条答案
按热度按时间ev7lccsx1#
您需要在
\\|
上拆分。dzjeubhm2#
你必须转义管道符,因为它在正则表达式中确实有特殊的含义。但是,如果你使用引号,你必须转义斜杠。基本上,有两种选择:
或者使用
/
作为字符串分隔符以避免额外的转义