java - 使用正则表达式将字符串拆分为 3 部分

标签 java regex string

我有一个这样的字符串

DATA/2019-00-01-23.x

我想获得三个 token 文本、日期和时间

[DATA, 2019-00-01, 23]

我试过了

String x = "DATA/2019-00-01-23.x";
System.out.println(Arrays.toString(x.split("/|-[0-9]+.")))

这让我返回

[DATA, 2019, 01, x]

最佳答案

您实际上可以使用像

这样的split
x.split("/|-(?=[^-]*$)|\\D+$")

请参阅Java demo ,输出:[数据,2019-00-01, 23]

此正则表达式将在

处分割
  • / - 斜杠
  • | - 或
  • -(?=[^-]*$) - 字符串中的最后一个连字符
  • | - 或
  • \D+$ - 字符串末尾的任何 1+ 个非数字字符(如 String.split(regex) 使用 limit< 运行 参数为 0,字符串末尾的这些匹配不会导致结果数组中出现尾随空项。)

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

相关文章:

ios - 如何在 NSUserDefaults 中使用存储和使用 NSMutableAttributedString

java - 在 Spring 中保存两个模型之间的多对多关系

Java:设置默认按钮

javascript - JQuery:用正则表达式替换字符串

r - 如何在R中找到字符串的长度

delphi - 为什么 SetString 在 Delphi 中占用更少的内存(使用 Unicode)?

java - 使用 ajax 将模型和字符串传递给 Spring MVC

包含通用类型对象的java jackson解析对象

android - 正则表达式获得正数

ruby - 如何扫描文本中的多个字符串?