在java中使用正则表达式。在管道周围获取字符串

时间:2011-11-23 15:39:00

标签: java regex

finding matches inside pipes using java regexp

相关的巨大方式

我试过把管子放在管子里但不在身边。例如,我输入了这个。

|asd|qwe|zxc|||

使用split OR一些正则表达式,我得到

result 1 = '',  
result 2 = 'asd',
result 3 = 'qwe',
result 4 = 'zxc',
result 5 = '',
result 6 = ''

结果1,5和6包含0个长度字符串,这没关系。但我的问题是我无法得到一个结果,它会给我最后一个管道右边的零长度字符串。我尝试了几种组合,我似乎无法弄明白。使用string.split方法似乎也没有在最后一个管道的右侧获得零长度字符串。但它确实获得了第一个管道左侧的第一个零长度字符串。

任何帮助,建议将不胜感激。我并不是要让其他人做我的工作,我只需要一点正则表达式的帮助,因为我刚刚开始理解这项技术。

2 个答案:

答案 0 :(得分:1)

您希望使用两个参数String.split(String, int)方法,第二个参数为-1:

"|asd|qwe|zxc|||".split("\\|", -1)

单个参数split()方法与调用split("pattern", 0)的方法相同,后者会丢弃尾随空格。

Javadoc:String.split(String, int)

答案 1 :(得分:0)

不是很漂亮但是......

if(yourString.endsWith("|")){
  String toSplit = yourString + "|";
  String[] tokens = toSplit.split("|");
}