java - 如何从基于斜杠的分区中排除单字符表达式?

标签 java regex split

我想用正斜杠符号分割Java中的一些字符串,但排除字符串前后仅包含一个符号的情况。示例 - xx/xx/xxyy/ZZZ - 可以拆分,x/x - 避免拆分

我尝试使用字符集,但不明白如何从标准中排除[/]

如果有可能的排除选项,我将不胜感激

最佳答案

您可以使用此正则表达式,如果 / 仅由一个字符包围,则它不会匹配该正则表达式。

(?<=[^/\n].)/|/(?=.[^/\n])

<强> Regex Demo

显示分割的 Java 代码,

List<String> list = Arrays.asList("xx/xx/xxyy/ZZZ","x/x","/x/x/x/xxx");

list.forEach(x -> {
    String[] data = x.split("(?<=[^/\\n].)/|/(?=.[^/\\n])");
    System.out.println(x + " --> " + Arrays.toString(data));
});

打印,

xx/xx/xxyy/ZZZ --> [xx, xx, xxyy, ZZZ]
x/x --> [x/x]
/x/x/x/xxx --> [/x/x/x, xxx]

此外,万一您不想选择 / 进行分割,如果它的两侧仅由一个字符包围,您可以使用此正则表达式,

(?<=[^/\n].)/(?=.[^/\n])

<强> Demo 2

关于java - 如何从基于斜杠的分区中排除单字符表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55835591/

相关文章:

java - Spring - 将依赖项注入(inject) ServletContextListener

javascript - 带有/g 修饰符和 eval 的正则表达式文字 - FireFox 和 Chrome 中的奇怪行为

c++ - 拆分表达式但保留分隔符

android - 在 GridView 中动态添加整行,或 Split View

java - 如何使用Java获取API的内容?

java - 在java中如何从字符串中获取子字符串直到字符c?

java - Android 上的 Google 登录 - 由于未登录而无法注销

c# - 如何编写多行 RegEx 表达式

php - 如何用 PHP preg_replace 匹配一个字符加空格

c# 正则表达式拆分二进制字符串