Skip to main content

Hello,

I'm trying to read an OCRd pdf_text attribute and get the text between 2 lines.

My regexp is

(?=Detail : Verbruik vaste telefonie ).*(?=Detail : Verbruik mobiele telefonie )

but my result is strange

It does not end on "Detail : Verbruik Mobiele telefonie". Is there an error in the RegExp?

Hmm, it could be an issue with the preview window. Do you get the same result when just running the workspace?

 

Maybe there is a limit to the size of the matched string. 255 characters or something. Can you try using the '<' to match multiple strings and get a list?

 

 

(?<=Detail : Verbruik vaste telefonie ).*(?=Detail : Verbruik mobiele telefonie )

Hmm, it could be an issue with the preview window. Do you get the same result when just running the workspace?

 

Maybe there is a limit to the size of the matched string. 255 characters or something. Can you try using the '<' to match multiple strings and get a list?

 

 

(?<=Detail : Verbruik vaste telefonie ).*(?=Detail : Verbruik mobiele telefonie )

@virtualcitymatt,

Think it's a preview issue, output is not cut off.

However, it selects too much. It should end on the first 'Detail : Verbruik mobiele telefonie', no?


No, the regex you have is greedy, it will match as much as possible. You will need different regex if you want to match just down to the first instance of "Detail : Verbruik mobiele telefonie"

try

(?<=Detail : Verbruik vaste telefonie ).*?(?=Detail : Verbruik mobiele telefonie )

If you actually want to include the first Detail : Verbruik vaste telefonie in your matched group I'd probably use this instead

Detail : Verbruik vaste telefonie.*?(?=Detail : Verbruik mobiele telefonie )

@virtualcitymatt,

Think it's a preview issue, output is not cut off.

However, it selects too much. It should end on the first 'Detail : Verbruik mobiele telefonie', no?

0684Q00000ArM7XQAV.png

No, the regex you have is greedy, it will match as much as possible. You will need different regex if you want to match just down to the first instance of "Detail : Verbruik mobiele telefonie"

try

(?<=Detail : Verbruik vaste telefonie ).*?(?=Detail : Verbruik mobiele telefonie )

If you actually want to include the first Detail : Verbruik vaste telefonie in your matched group I'd probably use this instead

Detail : Verbruik vaste telefonie.*?(?=Detail : Verbruik mobiele telefonie )

No, the regex you have is greedy, it will match as much as possible. You will need different regex if you want to match just down to the first instance of "Detail : Verbruik mobiele telefonie"

try

(?<=Detail : Verbruik vaste telefonie ).*?(?=Detail : Verbruik mobiele telefonie )

If you actually want to include the first Detail : Verbruik vaste telefonie in your matched group I'd probably use this instead

Detail : Verbruik vaste telefonie.*?(?=Detail : Verbruik mobiele telefonie )

I feel so stupid. I really overlooked the greedy part.

Thank you so much!


Reply