首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Java String.split()方法中使用转义字符处理分隔符

在Java String.split()方法中使用转义字符处理分隔符
EN

Stack Overflow用户
提问于 2013-09-08 04:45:25
回答 1查看 31.5K关注 0票数 20

我已经在网上搜索了我的问题,但没有得到完全符合我要求的答案。我的字符串如下:

代码语言:javascript
复制
A|B|C|The Steading\|Keir Allan\|Braco|E

我的输出应该如下所示:

代码语言:javascript
复制
A
B
C
The Steading|Keir Allan|Braco
E

我的要求是,如果分隔符前面有转义序列,则跳过该分隔符。我在String.split()中尝试了以下使用负lookbehinds的方法

代码语言:javascript
复制
(?<!\\)\|

但是,我的问题是分隔符将由最终用户动态定义,它不需要总是|。它可以是键盘上的任何字符(没有限制)。因此,我怀疑对于regex中不允许的一些特殊字符,上述正则表达式可能会失败。

我只想知道这是不是最好的方法。

EN

回答 1

Stack Overflow用户

发布于 2018-08-04 07:43:13

我知道这是一个旧的线程,但是lookbehind解决方案有一个问题,它不允许转义字符的转义(拆分不会发生在A|B|C|The Steading\\|Keir Allan\|Braco|E)上)。

线程Regex and escaped and unescaped delimiter中的正匹配解决方案工作得更好(如果分隔符是动态的,则使用Pattern.quote()进行修改)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18677762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档