我有一个这样的字符串
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/