2014-03-05 4 views
1

мне нужно регулярное выражение, чтобы выбрать все каталоги в директории, где этиРегулярное выражение для Игнорирование конкретных цифр

 
1. start with any alpha 
2. Not followed by a specific set of digits 
3. Followed by a alpha numeric characters till the end 

Я попробовал следующее выражение, но это не работает

^skk\/[a-zA-Z]*[^1][a-z0-9A-Z]*$" 

однако

^skk\/[a-zA-Z]*[^1]*$ 

работает отлично, но не решает проблему.

Здесь skk является корневым каталогом.

Пример данных SKK/абв123 не должен быть выбран SKK/abc321 должен быть выбран

+0

Как насчет 'skk/abcdef'? Должно ли это пройти или нет? Он начинается с альфы, у нее нет '1' и заканчивается буквенно-цифровым. – Jerry

+0

@jerry следует выбрать, так как это не содержит 1. Может быть, я могу перефразировать мой вопрос ко всей строке, где первая цифра в строке не 1 – Arvind

ответ

2

кажется мне, что вы ищете регулярное выражение больше как:

^skk\/(?![a-zA-Z]+1)[a-zA-Z]+[A-Za-z0-9]+$ 

regex101 demo

Это гарантирует, что первый после альфа-символов не является 1.

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

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

+0

да, вот и все - слишком долго;) – simon

+0

@Jerry, спасибо за быструю помощь, мой двигатель регулярных выражений не поддерживает негативные взгляды. Но я верю, что смогу принять его дальше. – Arvind

0

Добавить звездочка (*) или плюс (+) после последнего набора [] и до $.

  • Звездочка означает повторение предыдущего образца от нуля до бесконечности. (соответствует skk/abc1 и skk/abc12)
  • Плюс означает повторение предыдущего шаблона от одного до бесконечного раза. (Матчи SKK/abc12, не совпадает SKK/abc1)
+0

Я считаю, что OP необходимо _change_ звездочку до плюс – simon

+0

Вы вероятно, правильно. Я прочитал и ответил на предварительно отредактированную версию вопроса, когда не было ясно, что после последнего набора была звездочка. – Slartibartfast

+0

@Slartibartfast, мои извинения, не понял, что звездочка имеет другое значение. – Arvind

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