java - 使用 Java 正则表达式解析带分隔符的字符串

标签 java regex

我需要使用双空格解析我的字符串。所以我确实将正则表达式写为 //g。这确实找到了所有双空格,但我只需要这样的那些,使得每个连续的双空格之间必须是“=”号。为了清楚起见,让我用例子来解释:

对于输入:

Hes id= 000014  Sbkd= 1151  Hesno= 0138075  Tur= 7  Dvkd= TL  name= james michael   king  id= 555  home=turkey

如果我尝试使用正则表达式 //g 我会得到如下匹配:

Regex Output ScreenShot

但如您所见,我不需要在 michael 之后加双空格,显然我不想拆分名称。

那么有没有正则表达式可以检查匹配之间的字符并帮助解决我的问题?

注意:我使用 Java,但我只需要正则表达式,假设我不能使用任何 Java 函数。

最佳答案

您可以在拆分正则表达式中使用先行:

/  (?=\w+=)/g

(?=\w+=)将确保有一个 <name>=在 2 个空格之后。

RegEx Demo

在 Java 中你必须使用:

String[] arr = input.split("  (?=\\w+=)");

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

相关文章:

java - 逻辑有问题?

java - 编写仅包含 1 个数组的 Java QuickSort 函数

c# - 用于短语搜索的正则表达式

ios - ios中的电话号码格式掩码

java - Java中通过正则表达式从字符串中提取数字

java - False Activity 通过单击抽屉导航上的项目打开

java - 自定义 View 布局 - "List<Map> cannot be converted to List<? extends Map<String,?>> "

java - 正则表达式整个词

regex - 如何仅在包含或不包含其他模式的行上替换模式?

java - 如何让高分榜与用户保持联系?