Suppose we don't know how many slashes we could get in a string but we do not want any extra slashes. So if we get this string '/hello/world///////how/are/you//////////////' we should transform it to the form of '/hello/world/how/are/you/'. How to do it with the help of regular expressions in JavaScript?
4 Answers
"/hello/world///////how/are/you//////////////".replace(/\/+/g, "/")
3 Comments
g: if it wasn't there, it would replace the first instance of / and then give up. The g flag effectively means, "keep on going until you've got them all."'/hello/world///////how/are/you//////////////'.replace(/\/{2,}/g, '/');
This might be an incy wincy bit faster than mkoryak's suggestion, for it will only replace where necessary – i.e., where there's multiple instances of /. I'm sure someone with a better understanding of the nuts and bolts of the JavaScript regular expression engine can weigh in on this one.
UPDATE: I have now profiled mine and mkoryak's solutions using the above string but duplicated hundreds of times, and I can confirm that my solution consistently worked out several milliseconds faster.
1 Comment
Edited: mkoryak's answer below is way better. Leaving this in case the info it contains is useful for someone else.
You could capture each word + slash group and look ahead (but don't capture) for one or more extra slash. Like...
(\w+\/)(?:\/)*(\w+\/)(?:\/)*
First () captures one or more of any word character followed by a slash, second () looks for a slash but doesn't capture, * means find 0 or more of the proceeding token. Etc.
Hope that helps!
Comments
I want to make a regex for string which matches from point A till point B
text= "testtttExecuted 'show bootvar' on \n10.238.196.66. kjdkhfkh Executed tsttt\n fhgkhkh"
Output should be
testtttExecuted 'show bootvar' on \n10.238.196.66. kjdkhfkh
I want to make a regex for string which matches from point A till point B
text= "testtttExecuted 'show bootvar' on \n10.238.196.66. kjdkhfkh Executed tsttt\n fhgkhkh"
Output should be
testttt<font color='red'>Executed 'show bootvar' on \n</font>10.238.196.66. kjdkhfkh <font color='red'>Executed tsttt\n</font> fhgkhkh