【问题标题】:Split a string based on the occurrence of a number after a letter [closed]根据字母后出现的数字拆分字符串[关闭]
【发布时间】:2020-10-05 06:44:09
【问题描述】:

我有一个如下所示的字符串 String = "002 - Apple043 - Ball050 - Cat".

我需要将其拆分并添加到如下所示的列表中。

('002 - Apple','043 - Ball','050 - Cat')

有人可以帮我解决这个问题的正则表达式或java代码吗?

【问题讨论】:

  • 这是用于 java 还是 javascript?您将它们都标记了,但它们是完全不同的语言
  • +1 如果这需要在 Java 或 Javascript 中实现。否则可能无法使用解决此问题的代码。

标签: javascript java regex


【解决方案1】:

如果您正在寻找 JavaScript 代码,这可能会有所帮助:

let text = "002 - Apple043 - Ball050 - Cat";
let items = text.split(/(?<=[a-zA-Z])(?=[0-9])/);
console.log(items);

【讨论】:

  • 无法在 Friefox 中工作。
  • 感谢@Leandro。我正在寻找更多的java代码。我尝试在 Java 中使用相同的正则表达式,但它不起作用。
【解决方案2】:

尝试使用(?&lt;=[a-zA-Z])(?=[0-9])进行java拆分

demo

【讨论】:

  • 这在 JS 中不起作用,除非您使用的是 Chrome 或最新的 Edge 浏览器。
  • @MonkeyZeus,不支持lookbehinds的浏览器是否支持lookaheads?如果他们这样做,也许可以使用\d.*?[a-z](?=\d)ref 检索匹配而不是拆分。或者只是.*?[a-z](?=\d)
  • 谢谢@Edward。这有效
猜你喜欢
  • 2016-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多