java - 使用正则表达式仅获取分隔符

标签 java regex

我有以下字符串,我想将其拆分并仅获取分隔符!

例如:

-3/*1         --> [/*]
3/1           --> [/]
22/*23/off    --> [/*,/]
-bar/12(2)/14 --> [/,/]
14/*4(3)      --> [/*]
1/*7/*11      --> [/*,/*]

我有这个正则表达式模板:

"\\w|[(]|[)]|[-]"

但效果不佳,它确实删除了不必要的数字和括号,但它在输出数组中提供了额外的空单元格。

知道如何改进吗?

谢谢!

编辑1

我发现用这个表达式分割也有效

"[^/\\*?]"

但同样 - 它会在输出数组中留下空单元格。

最佳答案

进行匹配而不是拆分。

Matcher m = Pattern.compile("/\\*?").matcher(s);
List<String> list = new ArrayList<String>();
while(m.find()) {
  list.add(m.group());
}
System.out.println(list);

关于java - 使用正则表达式仅获取分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32982818/

相关文章:

java - JAXBgenerateElementProperty代码位置

java - 打开资源文件夹中存储的 PDF 文件会引发异常

正则表达式 - URL 正则表达式专门用于 Excel VBA

c# - 使用 lambda 表达式替换正则表达式匹配

java - 这个 Java 正则表达式代码在做什么?

java - 从给定实例动态创建扩展匿名类(在运行时覆盖实例中的方法)

Java字符串base64编码算法以匹配openssl实现

java - 我通过浏览器访问下面的 webservice 方法时遇到异常

java - 特殊领域的正则表达式重音字符

python 正则表达式匹配行开头定义的单词与其他行中定义的单词之间的所有内容