regex Java正则表达式与OR条件分割字符串

ni65a41a  于 2023-04-22  发布在  Java
关注(0)|答案(1)|浏览(90)

我需要构建一个正则表达式来拆分以数字或LM开头的字符串(精确匹配,因为它是一种特殊情况)

For example - 
Input : 1LM355PL6R5L8
Output : [1,LM,3,5,5PL,6R,5L,8]

Input : 349AB8LM7Y4II
Output : [3,4,9AB,8,LM,7Y,4II]

对于数字,我已经构建了这个正则表达式(?<!^)(?=\\d),它似乎工作得很好。现在我很困惑如何添加这个精确匹配的'LM'。它可以在任何位置

List<String> diff = Arrays.asList(inputString.split("(?<!^)(?=\\d)"));

上述代码的实际输出

Output : [1LM,3,5,5PL,6R,5L,8]
    
Output : [3,4,9AB,8LM,7Y,4II]

我试图在正则表达式中放入一个OR条件,并对LM进行严格匹配,但没有从中获得正确的结果。

List<String> diff = Arrays.asList(inputString.split("(?<!^)(?=\\d)|('LM')"));
5sxhfpxr

5sxhfpxr1#

带有|的or部分应该放在lookahead中,LM周围不应该有引号。

inputString.split("(?<!^)(?=\\d|LM)")

相关问题