2016-10-03 2 views
-2

мне нужно регулярное выражение, которое соответствует следующей схеменужны регулярное выражение для конкретного шаблона

Строка должна соответствовать «/ ашока/.....» но не должен совпадать с «/ Ashok/... : ...»и '/ ашока/файл: а ...

например: /ashok/xyz должен соответствовать но /ashok/file:abc.jpg не должна.

толстой кишки не должны появляться после того, как второй слеш

+0

Двоеточие не отображается сразу после второй косой черты. После второй косой черты будет по крайней мере 1 буквенно-цифровой символ. Но после этого двоеточие не должно появляться. Например,/ashok/xyz должен пройти, но/ashok/xyz: и/ashok/xyz: abc не должен. После двоеточия будут символы. Это тоже не должно проходить – Ashok

ответ

1

Я не уверен, что я понимаю, что вы просите. Но вы можете попробовать отрицательный предпросмотр:

/\/ashok\/(?!.*:).+/g 

Это будет соответствовать только /ashok/xyz если нет колоны появляются после того, как второй прямой косой черты. Это регулярное выражение требует, чтобы по крайней мере один символ без двоеточия следовал за второй косой чертой. Если в этом нет необходимости, вы можете использовать:

/\/ashok\/(?!.*:).*/g 

Вы можете прочитать эту page, чтобы узнать больше о негативных lookaheads (и lookarounds в целом).

Редактировать

В качестве альтернативы, если ваша тема строка должна содержать только один экземпляр вашей конструкции и ничего другого, вы можете использовать это, чтобы избежать lookarounds:

/^\/ashok\/[a-z0-9]+$/i 

Или, если вам это нужно соответствуют более одной группе буквенно-цифровых символов с прямой косой чертой:

/^\/ashok(?:\/[a-z0-9]+)+$/i 
+0

Двоеточие не появляется сразу после второй косой черты. После второй косой черты будет по крайней мере 1 буквенно-цифровой символ. Но после этого двоеточие не должно появляться. Например, /ashok/xyz должен пройти , но/ashok/xyz: и/ashok/xyz: abc не должен. После двоеточия будут символы. Это тоже не должно проходить – Ashok

+0

Ну, если это так, вы можете использовать '/ \/ashok \/(?!. +:). +/G'. Я также добавил еще два строки регулярных выражений к моему первоначальному ответу, которые не используют образы. Если я понимаю ваши требования, первая из этих строк ('/^\/ashok \/[a-z0-9] + $/i') - именно то, что вы ищете. – ideoderek