|
|
|
(PCRE) Странный эффект с группирующими скобками
|
|||
|---|---|---|---|
|
#18+
Мне нужно распарсить регулярным выражением строки вида aaaaa<br>bbbbb aaaaabbbbb так, чтобы в первый элемент попала либо строка до <br>, если тот присутствует в обрабатываемой строке, либо пустая строка в. Соответственно, во второй элемент нужно занести либо продолжение строки после <br>, либо строку целиком. Мой вариант: Код: plaintext 1. 2. 3. 4. array(3) { [0]=> string(14) "aaaaa<br>bbbbb" [1]=> string(5) "aaaaa" [2]=> string(5) "bbbbb" } , а для $text = 'aaaaabbbbb'; получается что-то странное: array(5) { [0]=> string(10) "aaaaabbbbb" [1]=> string(0) "" [2]=> string(0) "" [3]=> string(0) "" [4]=> string(10) "aaaaabbbbb" } Т.е., выходит, что отрабатывают обе альтернативы, при том, что первому варианту строка не соответствует? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2006, 14:40 |
|
||
|
(PCRE) Странный эффект с группирующими скобками
|
|||
|---|---|---|---|
|
#18+
Ап... Есть у кого идеи, что за ботва и как жить дальше? Вообще, мне это довольно срочно надо...( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2006, 15:29 |
|
||
|
(PCRE) Странный эффект с группирующими скобками
|
|||
|---|---|---|---|
|
#18+
Ну подскажите чего-нибудь?( Может, я какое-то простое решение упускаю из вида? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2006, 16:43 |
|
||
|
(PCRE) Странный эффект с группирующими скобками
|
|||
|---|---|---|---|
|
#18+
php manual В случае, если после открывающей круглой скобки следует "?:", захват строки не происходит, и текущая подмаска не нумеруется. Как сделать - сейчас подумаю. Кстати, задача СОВЕРШЕННО не требует применения именно регекспа. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2006, 17:55 |
|
||
|
(PCRE) Странный эффект с группирующими скобками
|
|||
|---|---|---|---|
|
#18+
Требует, она существенно сложнее, на самом деле... Это просто локализованный источник странного поведения шаблона. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2006, 17:59 |
|
||
|
(PCRE) Странный эффект с группирующими скобками
|
|||
|---|---|---|---|
|
#18+
Код: plaintext Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2006, 18:08 |
|
||
|
(PCRE) Странный эффект с группирующими скобками
|
|||
|---|---|---|---|
|
#18+
Спасибо, такой вариант подходит. А нет предположений, как может мой вариант выдавать 4 элемента вместо двух? Я ли что-то не понял в использовании группирующих скобок или это действительно похоже на баг? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2006, 18:22 |
|
||
|
(PCRE) Странный эффект с группирующими скобками
|
|||
|---|---|---|---|
|
#18+
Это не баг, просто ты немного недосмотрел по скобкам. Сравни со своим вариантом - и увидишь. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2006, 18:23 |
|
||
|
(PCRE) Странный эффект с группирующими скобками
|
|||
|---|---|---|---|
|
#18+
Ой нет, к сожалению, такой вариант не совсем подходит.( Мне необходимо, чтобы и в том, и в другом случае захватывалось два элемента, в случае, если <br> в строке нету, первый элемент должен быть пустая строка, второй -- содержимое строки. Собственно, именно поэтому мой вариант и более сложный. Но работает не как предполагалось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2006, 18:29 |
|
||
|
(PCRE) Странный эффект с группирующими скобками
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Может, конечно, я чего не понимаю... Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2006, 18:57 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=33564098&tid=1476667]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
195ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 513ms |

| 0 / 0 |
