1

我正在尝试使用 RegEx 从一个大字符串中获取子字符串。子字符串的格式如下:

  • 以数字 00-99 开头,后跟等号 =。
  • 可能包含至少一个字符。任何字符。
  • 以下划线“_”结尾。

示例子字符串:

01=#010.0000#001.0000#+10.0#AA_
02=#020.0000#002.0000#+20.0#BB_

完整字符串示例:

01=#010.0000#001.0000#+10.0#AA_02=#020.0000#002.0000#+20.0#BB_

我尝试了这个表达式,但它让我得到了完整的字符串。

^\d{2}=.+_$

我错过了一些东西。有什么帮助吗?

4

1 回答 1

3

您可以使用

\d{2}=.*?_(?=\d{2}=|$)

查看正则表达式演示

您可能还需要在匹配之前没有数字,并带有(?<!\d)否定的后视:

(?<!\d)\d{2}=.*?_(?=\d{2}=|$)

\d{2}=.*?_(?=\d{2}=|$)模式匹配 2 位数字,=然后匹配除换行符以外的任何 0+ 字符,尽可能少,直到第一个_具有两位数字且=在其之后或位于字符串末尾的字符。

于 2018-11-30T13:44:29.717 回答