2015-12-08 2 views
0

Я хочу написать регулярное выражение для соответствия любой строке с 5 косой чертой. Это соответствует URL-адресу в Google Analytics. Я думал, что подошел близко, но сигары пока нет. Это то, что я придумал:Regex, чтобы соответствовать строке с пятью косой чертой

\/.*\/.*\/.*\/.*\/.*$ 

Но это ничего не значит. Как я могу это исправить? Или это невозможно?

+0

Не могли бы вы предоставить тестовый ввод? Кроме того, '. * $' Кажется для меня бессмысленным, так как вы, похоже, не используете группы захвата ... Почему бы просто не оставить его и позволить совпадение в середине строки? Ваш конкретный двигатель регулярного выражения также может иметь значение. – jpmc26

+0

http://www.regexpal.com/ – Draco18s

+1

Каково ваше регулярное выражение? –

ответ

3

следующее регулярное выражение will work:

.*(?:\/.*){5} 

Объяснение:

.*    # Any character (except newlines) 0 or more times 
    (?:   # Start of non-capturing group 
     \/  # Matches `/` literally (is esacped with a backslash) 
     .*  # Any character (except newlines) 0 or more times 
     ) # End of group 
      {5} # The previous group five times 
+0

Doh! Красиво сделано. Я должен был заметить это: P – Jodevan

+0

Спасибо за это, работал шарм – goose

0

Если вы хотите просто что-то вроде/AAA/BBB/CCC/ддд /, это будет делать трюк:/[^ /] +/[^ /] +/[^ /] +/[^ /] +/ Однако есть ли еще вопросы?

  1. Это единственный формат?
  2. Возможно ли иметь цепочку символов перед первой косой чертой?
  3. Возможно ли иметь любую цепочку символов после последней косой черты?

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

Cheers.

0

Вы можете использовать «(\ w * \ W) {5}", так как «\ W» используется для символов, отличных от слов.

0

Простой, как это:

(/[^/]*){5} 

Изменение * до +, если вам нужно, по крайней мере характер между косыми чертами.

Смежные вопросы