logeeks
logeeks

Reputation: 4977

regular expression to find in-between content

I am trying to find the content between %%EndPageSetup and LH(%%[Page: 1]%%) = using regular expression. I tried various patterns but not getting the correct output. Can someone please help me on this?

%EndPageSetup

/DeviceGray dup setcolorspace /colspABC exch def ‹ … scol … „A VM? Pscript_WinNT_Incr begin %%BeginResource: file Pscript_T42Hdr 5.0 0 /asc42 0.0 d/sF42{/asc42 ~ d Ji}bind d/bS42{0 asc42 -M}bind d/eS42{0 asc42 neg -M}b/Is2015?{version cvi 2015 ge}bind d/AllocGlyphStorage{Is2015?{!}{{string} forall}?}bind d/Type42DictBegin{25 dict /FontName ~ d/Encoding ~ d 4 array astore cvx/FontBBox ~ d/PaintType 0 d/FontType 42 d/FontMatrix[1 0 0 1 0 0]d /CharStrings 256 dict/.notdef 0 d & E d/sfnts}bind d/Type42DictEnd{& @ /FontName get ~ definefont ! E}bind d/RDS{string currentfile ~ readstring !} executeonly d/PrepFor2015{Is2015?{/GlyphDirectory 16 dict d sfnts 0 get @ 2 ^ (glyx)putinterval 2 ^(locx)putinterval ! !}{! !}?}bind d/AddT42Char{Is2015? {findfont/GlyphDirectory get ` d E ! !}{findfont/sfnts get 4 ^ get 3 ^ 2 ^

LH(%%[Page: 1]%%) =

Thanks.

Upvotes: 0

Views: 322

Answers (3)

adhirajsinghchauhan
adhirajsinghchauhan

Reputation: 715

This should work:

(?:%%EndPageSetup)(.*\n)*(?=LH\(%%\[Page: 1\]%%\) =)

Explanation

  • The 3rd capture group (?=LH\(%%\[Page: 1\]%%\) =) uses a positive lookahead, so you can match that group without including it in the result.

  • The 2nd capture group (.*\n) matches all characters including line breaks. Using *, you can match 0 or more of the preceding token/group.

  • The first non-capturing group matches (?:%%EndPageSetup)and omits it from the result.

Note

You can use lookbehinds too, but JavaScript doesn't support them.

Upvotes: 0

stema
stema

Reputation: 92996

This works with your examples

%%EndPageSetup(.*?)\(%%\[.*?Page.*?\]%%\) =

See it here online on Regexr

make sure to activate the s (dotall) modifier, so that is possible to match newline characters with the ..

Your result is then in capture group 1.

How to activate the modifier and how to get the result depends on your language.

Upvotes: 1

marco
marco

Reputation: 286

this may work

/EndPageSetup(.*?)LH\((?:.*?)\[Page: 1\](?:.*?)\) =/

Upvotes: 1

Related Questions