|
|
|
regexp со "*" на Linux/Windows
|
|||
|---|---|---|---|
|
#18+
Уважаемые знатоки, При переносе процедуры между платформами наступил на неприятные грабли: Разбор строки на однородные подстроки осуществлялся выражением Код: sql 1. На Linux/BSD отлично работает, на Windows ломается из-за неверной интерпретации звезды. Проблему обошел через Код: sql 1. но осадок остался. Подскажите пожалуйста, с чем может быть связан такой эффект. Версия 9.0.18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 07:01:23 |
|
||
|
regexp со "*" на Linux/Windows
|
|||
|---|---|---|---|
|
#18+
hattifattener, ща на винде постгреса нет. [недавно переставлял]. но таких багов не помню навскидку убери префикс E и (сл-но) сними дабл \\ в регекспе [ '((.)\2*)' ]. ничего не поменяется, но вдруг(если да -- то и звизду экранируй с E). я пр-льно понимаю, что * у вас квантификатор ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 08:18:54 |
|
||
|
regexp со "*" на Linux/Windows
|
|||
|---|---|---|---|
|
#18+
hattifattener, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. винда: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. т.е. неясно, что у вас не фурыкает вариант -- парсер не может понять [платформенная разница в ём] что и в каком порядке квантифицировать и делает \(2*) вместо (\2)*. попробуйте явно выделить: Код: sql 1. 2. 3. 4. 5. 6. ну и вариант с экранировкой звизды приведите ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 10:22:26 |
|
||
|
regexp со "*" на Linux/Windows
|
|||
|---|---|---|---|
|
#18+
этта, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Для 9.3 работает. Наступалось только на 9.0. В known bugs ничего похожего. Почему и спрашиваю - может кто в курсе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 12:47:22 |
|
||
|
regexp со "*" на Linux/Windows
|
|||
|---|---|---|---|
|
#18+
этта, Вариант с '(.)((\1)*)' разбирает строку на символы, а E'(.)((\\1)*)' ломается на односимвольных подстроках и на винде и на линуксе. Экранировка звезды приводит к тому, что квантификатора кагбе вообще нет, а есть символ звезда - и ведет себя соответсвенно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 12:55:14 |
|
||
|
regexp со "*" на Linux/Windows
|
|||
|---|---|---|---|
|
#18+
hattifattenerэтта, <> Экранировка звезды приводит к тому, что квантификатора кагбе вообще нет, а есть символ звезда - и ведет себя соответсвенно. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. похоже -- какой то баг парсера регекспов 9.0. т.е. экранировка "происходит" (если происходит) после разбора регекспа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 16:24:05 |
|
||
|
regexp со "*" на Linux/Windows
|
|||
|---|---|---|---|
|
#18+
покажите на 9.0 результат в винде и в постгресе Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 16:31:36 |
|
||
|
regexp со "*" на Linux/Windows
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. Верно, это я два слеша поставил, когда выражение начало звезду искать. Так получается первый случай. Видимо таки unknown bug в парсере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 19:52:03 |
|
||
|
regexp со "*" на Linux/Windows
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2015, 01:04:28 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=38852395&tid=1998249]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
213ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 538ms |

| 0 / 0 |
