java - 分割字符序列但保留字符串

标签 java android regex

我办公室的一位程序员制作了一个有点迟钝的数据库,所以我遇到了一个问题。 我有一个字符串,需要将其分成 4 部分,以便我可以从索引中读取数据。

我得到的字符串是这样的:

aimer|4-28-2-2.mp3=12###

我想要取回的数组是:

  1. aimer
  2. 4-28-2-2.mp3
  3. 12
  4. ###

我当前使用的Java代码:

String assignmentRaw = "aimer|4-28-2-2.mp3=12###";
String[] assignmentSplit = assignmentRaw.split("\\||=");

for(String assignment : assignmentSplit)
    Log.i(ElkeDagApplication.DEBUG_TAG, assignment);

并返回:

  1. aimer
  2. 4-28-2-2.mp3
  3. 12###

最佳答案

如果最后一次分割的要求是:左边是数字,右边是#,你可以这样做

String[] assignmentSplit = assignmentRaw.split("\\||=|(?<=\\d)(?=#)");

(?<=\\d)lookbehind assertion检查左侧的数字

(?=#)lookahead assertion检查右侧是否有“#”

关于java - 分割字符序列但保留字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13377566/

相关文章:

python - 杀死一个正在用正则表达式监听的端口

android - 使用复选框以编程方式填充首选项

java - 在 Spring JPA 中是否有更简洁的方式构建 MappedSuperclass Tree 类?

java - 如何从 Java 应用程序打印 PDF

java - 通用方法 - 不能应用于给定类型

java - Android 电话通话流

android - 如何在 opengl Android 中进行对象检测?

c# - ^ 后面的 ?= 是什么意思?

regex - 如果任何模式在给定序列中多次出现,如何使用正则表达式进行匹配

java - 将 windows javac 命令转换为 linux