regex to match substring after nth occurence of pipe character
i am trying to build one regex expression for the below sample text in which i need to replace the bold text. So far i could achieve this much
((\|)).*(\|)
which is selecting the whole string between the first and last pip char. i am bound to use apache or java regex.
Sample String: where text length between pipes may vary
1.1|ProvCM|111111111111|**10.15.194.25**|10.100.10.3|10.100.10.1|docsis3.0
To match part after nth
occurrence of pipe you can use this regex:
/^(?:[^|]*\|){3}([^|]*)/
Here n=3
It will match 10.15.194.25
in matched group #1
RegEx Demo
^((?:[^|]*\\|){3})[^|]+
You can use this.Replace by $1<anything>
.See demo.
https://regex101.com/r/tP7qE7/4
This here captures from start
of string to |
and then captures 3 such groups and stores it in $1
.The next part of string till |
is what you want.Now you can replace it with anything by $1<textyouwant>
.