Как использовать регулярные выражения, чтобы убрать [a-z] / [a-z] / из строки? - PullRequest
3 голосов
/ 31 мая 2010

Скажите, что строка abc/xyz/IMPORTANT/DATA/@#!%@!%, а я просто хочу IMPORTANT/DATA/!%#@%!#%

Я ужасен в регулярных выражениях, и действительно еще не изучил JavaScript API

Ответы [ 3 ]

2 голосов
/ 31 мая 2010

Используйте indexOf и substring. Вам не нужно регулярное выражение для этого.

Вы можете использовать параметр start для indexOf для поиска по заданной позиции. Если вы ищете после первого /, вы можете найти индекс второго /.

s = "abc/def/ghi/jkl";
s = s.substring(s.indexOf('/', s.indexOf('/') + 1) + 1);
document.writeln(s); // "ghi/jkl"

Обратите внимание, что это предполагает, что всегда будет как минимум два /. Если нет, то это будет s как есть.

s = "abc/xyz";
s = s.substring(s.indexOf('/', s.indexOf('/') + 1) + 1);
document.writeln(s); // "abc/xyz"

Если вы все равно хотите использовать регулярные выражения, это будет примерно так:

s = "abc/def/ghi/jkl";
s = s.replace(/[a-z]+\/[a-z]+\//, '');
document.writeln(s); // "ghi/jkl"

Опять же, это предполагает, что всегда будет как минимум два /.

1 голос
/ 31 мая 2010

Я думаю

yourstring.replace(/[a-z]+\/[a-z]+\/(.+)/g, "$1");
1 голос
/ 31 мая 2010

Если текст всегда похож на ваш текущий пример, вы можете просто использовать substring и indexOf, чтобы вырезать его, начиная со второго вхождения символа "/".

В противном случае /([^\/]+\/[^\/]+\/)/, или ответ Блэр может быть хорошим регулярным выражением для использования. Или /^([^\/]+\/[^\/]+\/)/, если он должен начинаться с начала строки.

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