双管道之间的正则表达式

时间:2018-02-22 23:42:01

标签: java regex

我一直在尝试获取双管道字符串之间的所有值。

我的示例字符串在下面。

Item number 1 || Item number 2 || 168

Java代码如下:

final String regex = "?????";
final String string = "Item number 1 || Item number 2 || 168";

final Pattern pattern = Pattern.compile(regex);
final Matcher matcher = pattern.matcher(string);

while (matcher.find()) {
   for (int i = 1; i <= matcher.groupCount(); i++) {
      System.out.println(matcher.group(i));
}

我希望正则表达式能够拆分并删除空格,并留下:

  • 项目编号1
  • 项目编号2
  • 168

如何实现这一目标?我没有找到类似的双管道答案。

1 个答案:

答案 0 :(得分:2)

您可以使用方法split()将字符串拆分为匹配。

正则表达式\s*\|\|\s*\s*\|{2}\s*

详细说明:

  • \s* 0个或更多连续出现的任何空格

Java代码

String text = "Item number 1 || Item number 2 || 168";
String[] ops = text.split("\\s*\\|{2}\\s*");

Code demo