Регулярное выражение в JavaScript - PullRequest
0 голосов
/ 01 июня 2010

Предположим, мы не знаем, сколько слешей мы можем получить в строке, но нам не нужны дополнительные косые черты. Так что если мы получим эту строку '/ hello / world /////// how / are / you //////////////', мы должны преобразовать ее в форму '/ hello / мир / как / есть / вы /». Как это сделать с помощью регулярных выражений в JavaScript?

Ответы [ 4 ]

3 голосов
/ 01 июня 2010
"/hello/world///////how/are/you//////////////".replace(/\/+/g, "/")
1 голос
/ 01 июня 2010
'/hello/world///////how/are/you//////////////'.replace(/\/{2,}/g, '/');

Это может быть битом на дюйм быстрее, чем советует mkoryak, поскольку он будет заменять только в случае необходимости, то есть там, где есть несколько экземпляров /. Я уверен, что кто-то, кто лучше разбирается в основных понятиях движка регулярных выражений JavaScript, может взвесить его.

ОБНОВЛЕНИЕ : Теперь я профилировал решения для моих и mkoryak, используя приведенную выше строку, но дублировал их сотни раз, и я могу подтвердить, что мое решение последовательно работало на несколько миллисекунд быстрее.

0 голосов
/ 29 октября 2016

Я хочу сделать регулярное выражение для строки, которая соответствует от точки A до точки B

text = "testtttExecuted 'show bootvar' \ n10.238.196.66. Kjdkhfkh Выполнено tsttt \ n fhgkhkh"

Вывод должен быть

testtttExecuted 'show bootvar' на \ n10.238.196.66. кждхфх

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
0 голосов
/ 01 июня 2010

Отредактировано: ответ Мкоряка ниже намного лучше.Оставьте это на тот случай, если содержащаяся в нем информация будет полезна кому-то еще.

Вы можете захватить каждое слово + слэш-группу и смотреть вперед (но не захватывать) для одного или нескольких дополнительных слешей.Например ...

(\w+\/)(?:\/)*(\w+\/)(?:\/)*

First () захватывает один или несколько символов слова, за которыми следует косая черта, second () ищет косую черту, но не захватывает, * означает поиск 0 или более изисходящий токен.И т.д.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...