I want to replace the comma (,) between two selected words. here is the input
test normal content [ABC]new, ball, test[/ABC]
output
test normal content [ABC]new[/ABC][ABC] ball[/ABC][ABC] test[/ABC]
I actually want to add prefix and suffix. currently, I using
(?i)\[ABC\](.+?), (.+?)\[/ABC\]
<div class="$1">$1</a> <div class="$2">$2</a>
but in this way, i have to add a rule for each number of words. so i thought if i can replace the comma with [/ABC][ABC]
and then I can simply use regular replace with [/ABC] and [ABC] to add prefixes and suffixes. it's a little bit complicated for me to write regex replace for such a problem. any help or guidance will be appreciated.
(?:\[ABC]|\G)[^[,]+\K,(?=.*\[/ABC])
[/ABC][ABC]
Explanation:
(?: # non capture group
\[ABC] # literally [ABC]
| # OR
\G # restart from last match position
) # end group
[^[,]+ # 1 or more any character that is not square bracket or comma
\K # forget all we have seen until this position
, # a comma
(?= # positive lookahead, make sure we have after:
.* # 0 or more any character
\[/ABC] # literally [/ABC]
)
Screenshot (before):
Screenshot (after):