作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想用正斜杠符号分割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/
我是一名优秀的程序员,十分优秀!