I need to find all _ in a string, but only if the whole string is between { and }. Also, the string we need to check must come after the last delimiter: ,.
An example (sorry for the "messy" example):
{some_text_1,some_text_1_more,some_text_1_more_more,0_1_2}INTERSECT{some_text_2,some_text_2_more,some_text_2_more_more,text,abc_efg_hijk}
The strings I need to go over are:
0_1_2 and abc_efg_hijk. I need to catch their _.
The reason for this is that I want to replace _ with a different delimiter as this one is causing issue. I will use regexp_replace after finding the correct regex.
For now I only managed to capture the strings between { and } using the following regex, but I failed to get _ after the last iteration of ,:
(?<=\{)(.*?)(?=\})
CodePudding user response:
If lookahead is supported and you don't need to check for the opening { try e.g.
_(?=[^,}{]*})
It looks if there is a closing } ahead with any amount of [^,}{] in between.
