|
как подправить регулярное выражение
|
|||
---|---|---|---|
#18+
Доброго всем дня подскажите как правильно написать регулярное выражение, чтобы проверялись точные условия в названии файлов? например: 1. „17 цифр”_”8 цифр”_TZP.dgn 2. „17 цифр”_”8 цифр”_TZPS.dgn сейчас получается так, что если название файла такое: 01888480030001002_20110609_TZP.dgn то он заходит и проходит проверку на rex.Pattern = "^\d{17}_\d{8}_TZP$" а если файл называется 01888480030001002_20110609_TZPS.dgn то он заходит и проходит проверку rex.Pattern = "^\d{17}_\d{8}_TZPS$", но почему-то еще и заходит на проверку rex.Pattern = "^\d{17}_\d{8}_TZP$" и в этом случае выдается результат Not Valid TZP. что надо исправить чтобы проверка на шаблоне делалась только в случае полного соответствия в названии? Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 16:17 |
|
как подправить регулярное выражение
|
|||
---|---|---|---|
#18+
Что-то вообще не понятно, как это работает. .dgn-то не учитывается. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 16:30 |
|
как подправить регулярное выражение
|
|||
---|---|---|---|
#18+
извините, не дописал в самом начале расширение убирается,т.к. может быть несколько вариантов Код: vbnet 1.
поэтому на проверку приходит 01888480030001002_20110609_TZP или 01888480030001002_20110609_TZPS ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 16:38 |
|
как подправить регулярное выражение
|
|||
---|---|---|---|
#18+
и еще там может быть 3 других вариантов "концовки" названия файла rex.Pattern = "^\d{11}_\d{8}_OP$" rex.Pattern = "^\d{11}_\d{8}_BCS$" rex.Pattern = "^\d{14}_\d{8}_BDPS$" поэтому для каждого варанта сделана своя проверка Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
наверное, это можно как-то оптимизировать, но пока не знаю как ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 16:43 |
|
как подправить регулярное выражение
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 16:56 |
|
как подправить регулярное выражение
|
|||
---|---|---|---|
#18+
Antonariy спасибо, это был бы идеальный вариант , если бы в первой части всегда должно было бы быть 17 цифр. но там, в зависимости, от концовки названия может быть и 11 и 14 „11 цифр”_”8 цифр”_OP.dgn „17 цифр”_”8 цифр”_TZP.dgn „11 цифр”_”8 цифр”_BCS.dgn „14 цифр”_”8 цифр”_BDPS.dgn „17 цифр”_”8 цифр”_TZPS.dgn так что в одном шаблоне никак не уместить все сразу ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 17:26 |
|
как подправить регулярное выражение
|
|||
---|---|---|---|
#18+
тьфу, вот балда! Код: vbnet 1.
еще раз спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 17:49 |
|
как подправить регулярное выражение
|
|||
---|---|---|---|
#18+
Saulesтьфу, вот балда! Код: vbnet 1.
Не уверен, что это правильно. По-моему (TZPS|TZP)|\d{11} будет воспринято как "TZPS или TZP или 11 цифр". Лучше так: Код: vbnet 1.
Фигурные скобки, кстати, могут задавать диапазоны. Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 17:57 |
|
как подправить регулярное выражение
|
|||
---|---|---|---|
#18+
Еще тут: (BDPS) не нужны скобки. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 17:59 |
|
как подправить регулярное выражение
|
|||
---|---|---|---|
#18+
Saules Antonariy спасибо, это был бы идеальный вариант , если бы в первой части всегда должно было бы быть 17 цифр. но там, в зависимости, от концовки названия может быть и 11 и 14 „11 цифр”_”8 цифр”_OP.dgn „17 цифр”_”8 цифр”_TZP.dgn „11 цифр”_”8 цифр”_BCS.dgn „14 цифр”_”8 цифр”_BDPS.dgn „17 цифр”_”8 цифр”_TZPS.dgn так что в одном шаблоне никак не уместить все сразу ИМХО: не надо всё в один шаблон.. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 21:16 |
|
как подправить регулярное выражение
|
|||
---|---|---|---|
#18+
Да ну их вообще, регулярных :D Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 22:57 |
|
как подправить регулярное выражение
|
|||
---|---|---|---|
#18+
Казанский спасибо за отличный вариант! остался последний вопрос: если еще возможны варианты названий 01000510145001_20101203_IX_99 (от 0 до 99,но не больше) и 01000510145001_20101203_SX_X99(от 0 до 99,но не больше) то как проверять в этом случае? этот вариант не работает Код: vbnet 1.
Код: vbnet 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2013, 12:21 |
|
как подправить регулярное выражение
|
|||
---|---|---|---|
#18+
Вы читали описание функции IsNumeric? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2013, 12:28 |
|
как подправить регулярное выражение
|
|||
---|---|---|---|
#18+
да, возвращает True или False ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2013, 12:44 |
|
|
start [/forum/topic.php?fid=60&msg=38213706&tid=2157055]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
27ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 140ms |
0 / 0 |