new line integer | string | integer ||
Note the double vertical bar at end, a single vertical-bar is being used a delimiter.
For example the bold below would be found :
11|Any String and numbers|939|ANY STRING|anything including delimter |
138151|Any String and numbers|90139||anything including delimter |
13811|Any String and numbers9|885|Morestring|anything including delimter |
I looking for the row the where the field between 3rd and 4th delimter is empty.
I think you want this:
Breaking this down:
^means “start of line”\d+means “at least one digit”\|means “a literal vertical bar character” (need to escape it because on its own it means “logical or”)[^|]+means “at least one non-vertical bar character”. Note that you don’t need to escape characters within a character class[...](except of course the closing bracket]).