java - 分隔字符串,java用正则表达式

标签 java regex

我想分隔一个字符串,但保留除空格之外的分隔符。

此外,我不想分隔像 asda45a 这样的单词或asd6ad .

这是分隔符列表:

private static String delimits="[{;}(),#<>*+-=/ ]+";

我试过String[] List = o.split("(?<="+delimits+")|(?="+delimits+")");

最佳答案

您需要调整您的 delimits 模式以排除空格(因为您不想在结果中保留空格分隔符)并将 - 放在末尾表达式中的字符类,它形成 += 之间的范围。然后,只需添加 | + 主正则表达式的替代方案:

String delimits="[{;}(),#<>*+=/-]+";
String o = "asda45a or-ro asd6ad";
String[] lst = o.split("(?<="+delimits+")|(?="+delimits+")| +");
System.out.println(Arrays.toString(lst));
// => [asda45a, or, -, ro, asd6ad]

请参阅online Java demo

如果您想用任何空格分隔,请替换 | +|\\s+

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

相关文章:

java - 如何在 Spring Boot 和 Hibernate 中统计特定 id 的记录

java - 为不同类型的对象反序列化 JSON 数据

c# - 哪个是首选 : Regex. Replace() 或。 aRegexObject.Replace()?

regex - 有什么方法可以从 npm search 中搜索包名称吗?

css - 如何使用正则表达式找到大于 100% 的值?

java - 如何将安装程序变量从自定义操作填充到安装上下文?

java - 将 MySQL json 列映射到 JPA 会引发错误

java - 移动平台上的 JasperReports

regex - 在 Emacs 正则表达式中匹配双花括号?

php - grep 搜索模式中的 "-"