Java中如何用正则提取双竖线间内容并去除空格?
解决双竖线分隔字符串的提取与去空格问题
嘿,这问题其实不难搞定!咱们直接用Java的split()方法配合合适的正则表达式就能完美解决——核心是要处理好正则里的特殊字符,同时兼顾分隔符前后的空格。
关键思路
双竖线||里的|是正则表达式的元字符(表示逻辑或),所以必须用反斜杠转义。另外,要自动去掉分隔符前后的空格,咱们可以把“任意空格+双竖线+任意空格”作为分割规则。对应的正则表达式是:\\s*\\|\\|\\s*
\\s*:匹配0个或多个空白字符(包括空格、制表符等)\\|\\|:匹配双竖线(每个|都要转义成\\|)
Java代码实现
假设你的示例输入字符串是类似这样的:
String input = " Item number 1 || Item number 2 || 168 ";
直接用split()方法分割,然后就能得到你想要的干净结果:
public class SplitDoublePipe { public static void main(String[] args) { String input = " Item number 1 || Item number 2 || 168 "; // 使用正则分割,自动处理前后空格 String[] items = input.split("\\s*\\|\\|\\s*"); // 输出结果 for (String item : items) { System.out.println(item); } } }
运行结果
执行这段代码后,会输出:
Item number 1
Item number 2
168
完全符合你的预期!如果输入字符串前后有多余的空格(比如开头或结尾的空格),split()也会自动处理——因为正则里的\\s*会匹配这些空格,分割后不会产生空字符串(除非输入全是空格,但这种场景一般不用考虑)。
内容的提问来源于stack exchange,提问作者Sixthpoint
相关产品推荐
相关产品推荐

