You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java正则表达式:用OR条件拆分含数字与LM的字符串

解决Java字符串拆分问题:按数字或"LM"开头拆分

问题分析

你需要的拆分规则对应两个场景:

  • 在非字符串开头的数字字符前拆分(原正则已实现该逻辑)
  • 在精确匹配的"LM"序列起始位置拆分(把LM单独拆成独立元素)

之前尝试的|('LM')逻辑错误:它是把"LM"本身作为分隔符来拆分,会直接从结果中剔除LM,完全不符合需求。

正确正则与代码

将两个拆分位置用正向预查组合,正确的拆分正则如下:

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

对应的Java代码:

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

验证示例

  • 输入1LM355PL6R5L8,拆分结果:[1,LM,3,5,5PL,6R,5L,8]
  • 输入349AB8LM7Y4II,拆分结果:[3,4,9AB,8,LM,7Y,4II]

正则逻辑解释

  • (?<!^)(?=\d):保留原有逻辑——仅在非字符串开头、且后面紧跟数字的位置拆分
  • (?=LM):匹配后面紧跟"LM"的位置,在这里拆分可将LM单独拆为一个元素,实现前面内容与LM的分离

内容的提问来源于stack exchange,提问作者jasmeet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 17:52:41