回头看,停在第一个

Look back and stop on the first one

我正在尝试用正则表达式解决这个问题:

1A2TestB

知道 B 是固定且已知的,检索 2 和 B 之间的内容,2 是向后的第一个数字,应该给我测试

有没有简单的方法(秘密符号)来做到这一点?

我想我可以用 Lookbehind 做到这一点

(?<=\d)(.*?)B

可是不管我怎么努力,我都得不到我想要的

您可以使用

\D*?(?=B)

或者,为避免出现空结果:

\D+?(?=B)

详情

  • \D*? - 0 个或更多非数字字符,尽可能少
  • \D+? - 1 个或多个数字以外的字符,尽可能少
  • (?=B) - 字符串中紧跟 B
  • 的位置

regex demo