input = ' 12Z taj 20501 jfdjda OCNL jtjajd ptpa 23Z jfdakdkf tjajdfk OCNL fdkadja 02Z fdjafsdk fkdsafk OCNL fdkafk dksakj = '
使用正则表达式
regexp(input,'\s\d{2,4}Z\s.*(OCNL)','match')
我正在尝试获取输出
[1,1] = 12Z taj 20501 jfdjda OCNL jtjajd ptpa
[1,2] = 23Z jfdakdkf tjajdfk OCNL fdkadja
[1,3] = 02Z fdjafsdk fkdsafk OCNL fdkafk dksakj
答案 0 :(得分:1)
您可以使用
(?<!\S)\d{2,4}Z\s+.*?\S(?=\s\d{2,4}Z\s|\s*=\s*$)
请参见regex demo。
详细信息
(?<!\S)
-当前位置的左侧必须紧跟空格或字符串开头\d{2,4}
-2、3或4位数字Z
-一封Z
字母\s+
-超过1个空格.*?\S
-尽可能少的零个或多个字符,然后为非空白(?=\s\d{2,4}Z\s|\s*=\s*$)
-当前位置的右边必须有两种模式之一:
\s\d{2,4}Z\s
-2位,3位或4位空格,Z
和1位空格|
-或\s*=\s*$
-一个=
,在字符串末尾用0+空格字符括起来。