|
regexp уменьшить количество вариаций при проверке
|
|||
---|---|---|---|
#18+
имею некий набор слов (a1, a2, a3, a4....) значений много эти слова в различных комбинациях могут появляться в тексте разделённые запятой каждое из слов появляется единожды и их порядом не меняется то есть если имеются a2 и a1 то a1 всегда раньше запятой в самом конце быть не может a1,a2,a3 - правильно a2,a3 - правильно a1,a4 - правильно a1,uu,a3 - не правильно a1, - не правильно a2,a1 - не правильно вопрос можно ли не создавая все варианты проверить через регулярное выражение корректность теста ? Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2011, 15:38 |
|
regexp уменьшить количество вариаций при проверке
|
|||
---|---|---|---|
#18+
Канечно! Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2011, 17:39 |
|
regexp уменьшить количество вариаций при проверке
|
|||
---|---|---|---|
#18+
Ой, опечатка... Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2011, 17:41 |
|
regexp уменьшить количество вариаций при проверке
|
|||
---|---|---|---|
#18+
Ёёёёё... опять опечатка.... ^(a1)?((?<=[^,]),)(a2)?((?<=[^,]),)(a3)?$ Хотя мне почему-то начало казаться, что ответ на первоначальный вопрос будет "нет". Потому что без look-around шаблнов как мне кажется задачу не решить, а их в убогом VB не знают. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2011, 17:44 |
|
regexp уменьшить количество вариаций при проверке
|
|||
---|---|---|---|
#18+
нет не так надо могут быть варианты a1 a1,a2 a1,a2,a3 a1,a3 a2 a3 a2,a3 если значений больше то и вариантов тоже жутко много использую такой вариант (a1)?((?<=[^,]),)(a2)?((?<=[^,]),)(a3)? но работает только a1,a2,a3 это правильно a1,a2, - а это не правильно ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2011, 19:08 |
|
regexp уменьшить количество вариаций при проверке
|
|||
---|---|---|---|
#18+
michael R, "в три прохода" на убогом VB. интересно - взлетит, не взлетит... Код: plaintext 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. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2011, 19:21 |
|
regexp уменьшить количество вариаций при проверке
|
|||
---|---|---|---|
#18+
michael Rнет не так надо могут быть варианты a1 a1,a2 a1,a2,a3 a1,a3 a2 a3 a2,a3 если значений больше то и вариантов тоже жутко много использую такой вариант (a1)?((?<=[^,]),)(a2)?((?<=[^,]),)(a3)? но работает только a1,a2,a3 это правильно a1,a2, - а это не правильно Нуууу.. забыл look-behind после запятой добавить: (a1)?((?<=[^,]),(?=[^,]))(a2)?((?<=[^,]),(?=[^,]))(a3)? А может быть проще прогнать строку через split с последующим сравнением полученного массива строк с массивом эталонных строк? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2011, 20:43 |
|
regexp уменьшить количество вариаций при проверке
|
|||
---|---|---|---|
#18+
White OwlНуууу.. забыл look-behind после запятой добавить: (a1)?((?<=[^,]),(?=[^,]))(a2)?((?<=[^,]),(?=[^,]))(a3)? ... Теперь представь полсотни слов в списке. Придется регулярку писать для проверки правильно ли составлен паттерн ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2011, 20:56 |
|
regexp уменьшить количество вариаций при проверке
|
|||
---|---|---|---|
#18+
(a1)?((?<=[^,]),(?=[^,]))(a2)?((?<=[^,]),(?=[^,]))(a3)? всё равно не то вариант a1 не работает a1,a2 не работает возможные варианты для 3-х значений a1 a2 a3 a1,a2 a1,a3 a2,a3 a1,a2,a3 у меня 14 таких значений ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2011, 23:49 |
|
regexp уменьшить количество вариаций при проверке
|
|||
---|---|---|---|
#18+
michael R, 10570514 не пробовали? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 00:42 |
|
regexp уменьшить количество вариаций при проверке
|
|||
---|---|---|---|
#18+
michael R, 10570514 не пробовали? пробовал это не то ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 00:57 |
|
regexp уменьшить количество вариаций при проверке
|
|||
---|---|---|---|
#18+
michael R, на каком шаге спотыкается? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 01:04 |
|
regexp уменьшить количество вариаций при проверке
|
|||
---|---|---|---|
#18+
варианты a1 a1,a2 вообще не срабатывают когда выбираю 3 значения думаю там вообще логика другая ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 01:08 |
|
regexp уменьшить количество вариаций при проверке
|
|||
---|---|---|---|
#18+
michael R, если текст и набор слов для проверки не top secret, - было бы интересно поковырять. Самому набирать тесты лень, сорри. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 01:20 |
|
regexp уменьшить количество вариаций при проверке
|
|||
---|---|---|---|
#18+
скукотищаWhite OwlНуууу.. забыл look-behind после запятой добавить: (a1)?((?<=[^,]),(?=[^,]))(a2)?((?<=[^,]),(?=[^,]))(a3)? ... Теперь представь полсотни слов в списке. Придется регулярку писать для проверки правильно ли составлен паттерн Это ты не мне говори. Я регулярки использую только там где надо :) Это michael R любит их всюду совать. Не верит что это не панацея и часто намного проще и эффективнее прогнать строку цикл из InStr(). ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 01:33 |
|
regexp уменьшить количество вариаций при проверке
|
|||
---|---|---|---|
#18+
ДА НЕТУ СЕКРЕТА сами слова это расширения для домейнов (TLD) как варианты com com;;net;;org com;;org net;;org таких слов 14-15 каждый из слов появляется один раз всех вариантов получается несколько тысяч такие варианты ошибка com;;net;; com;; zzz bbb; просто нужна проверка желательно одним этапом ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 01:35 |
|
regexp уменьшить количество вариаций при проверке
|
|||
---|---|---|---|
#18+
michael RДА НЕТУ СЕКРЕТАЯ скромно надеялся получить проверяемый текст и тестовую строку (набор "правильных" слов в правильном порядке)... Если правильно понял - то не судьба :( ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 01:46 |
|
regexp уменьшить количество вариаций при проверке
|
|||
---|---|---|---|
#18+
Я скромно надеялся получить проверяемый текст и тестовую строку (набор "правильных" слов в правильном порядке)... Если правильно понял - то не судьба :( я же дал проверяемые тексты правильные и неправильные ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 02:01 |
|
regexp уменьшить количество вариаций при проверке
|
|||
---|---|---|---|
#18+
michael R... эти слова в различных комбинациях могут появляться в тексте разделённые запятой...Ай, шайтан, савсем запутал!(с) Конечно, мой велосипед по ';;' в качестве разделителя не поедет. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 02:20 |
|
regexp уменьшить количество вариаций при проверке
|
|||
---|---|---|---|
#18+
ЗЫ: "правильные слова"==набор из TLD, это понятно. Непонятно - "правильный порядок" "правильных слов", проверяемый текст. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 02:22 |
|
regexp уменьшить количество вариаций при проверке
|
|||
---|---|---|---|
#18+
авторЗЫ: "правильные слова"==набор из TLD, это понятно. Непонятно - "правильный порядок" "правильных слов", проверяемый текст. хорошо забей на правильный порядок как следуют слова не важно главное что каждое слово может появится не больше одного раза слова должны разделятся (у меня например ";;") текст правильный если в нём есть только TLD и разделитель(и) но мне кажется что такое сделать невозможно а писать все варианты просто убиться ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 08:33 |
|
regexp уменьшить количество вариаций при проверке
|
|||
---|---|---|---|
#18+
michael Rхорошо забей на правильный порядок не могу, - накатило Код: plaintext 1. 2. 3. 4. 5.
Код: plaintext 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. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 08:51 |
|
regexp уменьшить количество вариаций при проверке
|
|||
---|---|---|---|
#18+
скукотища спасибо странно но почему то работает насколько я понял достаточно один раз с генерировать шаблон для всех вариантов и потом проверять на текст у которого вначале и в конце стоит по одному пробелу ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 10:02 |
|
regexp уменьшить количество вариаций при проверке
|
|||
---|---|---|---|
#18+
скукотища а можно ещё понаглеть ? коли ты такой добрый в данном шаблоне первое слово (com) всегда на первом месте (если имеется в проверочном тексте) это хорошо и правильно а вот остальные слова в наборе имеют плавающую позицию можно ли и им установить чёткие позиции ? если нельзя ну что уж поделаешь Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 10:40 |
|
regexp уменьшить количество вариаций при проверке
|
|||
---|---|---|---|
#18+
michael Rстранно но почему то работает Не работает: в тестовом примере строка Код: plaintext 1.
.SubMatches ... будь счастлив тот, кто их запихнул в vbscript.regexr и при этом обрезал Lookahead- и Lookbehind- Сейчас правлю michael R... можно ли и им установить чёткие позиции ?Можно. На "первый взгляд" даже проще чем с плавающими. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 11:32 |
|
|
start [/forum/topic.php?fid=60&msg=37234017&tid=2158751]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
212ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
others: | 351ms |
total: | 669ms |
0 / 0 |