将正则表达式从 Java 编辑为 JavaScript

Edit Regular Expression from Java to JavaScript

你好,我有一个 RegEx 问题,我在 Java 中有我的表达式,用于将输入拆分到数组,但是这个表达式在 JavaScript:

中不起作用
(?<=</d[12]>)\d*(?=<d[12]>)

我有一些对话

<d1>bla bla bla</d1><d2>bla bla bla</d2><d1>bla bla bla</d1>

我想输出分割成数组[<d1>bla bla bla</d1>,<d2>bla bla bla</d2>,<d1>bla bla bla</d1>]

你能帮我编辑这个表达式吗?谢谢

您不能像在 java 中那样拆分输入字符串,因为 java 脚本不支持后向断言。

这将适用于这个特定案例。

> var s = "<d1>bla bla bla</d1><d2>bla bla bla</d2><d1>bla bla bla</d1>"
undefined
> s.match(/(?!\d+).*?<\/d[12]>(?=\d*<d[12]>|$)/g)
[ '<d1>bla bla bla</d1>',
  '<d2>bla bla bla</d2>',
  '<d1>bla bla bla</d1>' ]