Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.140.186.241] |
|
Сообщ.
#1
,
|
|
|
Всем привет!!
У меня есть огромный файл в котором лежит множество анкетных формочек которые я хочу окуратно отделить от всего содержимого того файла. Для этого я построил регулярное вырожение (большой длины) и оно не работало!!!Ё Но если его разбить на два отдельных они работают!!! Вот: sub write_data{ $n="splyur";$nn="splver"; print DATA "$1$n$2$n$3$n$4$n$5$n$6$n$7$n$8$n$9$n$10$n$11$n$12$n$13$n$14$n$15$nn"; return "yura"; } $S1='<b>Рост:</b>'; $S2='<b>Вес:</b>'; $S3='<b>etc:</b>';#На самом деле эти строки достаточно длинные... типа $S14='<tr valign="top"><td colspan=2 class="qqwq">Oaeaoii: </td><td class="qssq">'; #Работает половина 1 $fl=~s/$S1\s*([^<]*)\s*$br\s*$br\s*$S2\s*([^<]*)\s*$br\s*$br\s*$S3\s*([^<]*)\s*$br\s*$br\s*\s*$td\s*$tr\s*$S4\s*([^<]*)$tdtr\s*$S5\s*([^<]*)$tdtr\s*$S6\s*([^<]*)$tdtr\s*$S7\s*([^<]*)$tdtr\s*$S8\s*([^<]*)$tdtr\s*$S9\s*([^<]*)$tdtr\s*$S10\s*([^<]*)$tdtr\s*/write_data()/isge; #Работает половина 2 $fl=~s/$S10\s*([^<]*)$tdtr\s*$S11\s*([^<]*)$tdtr\s*$S12\s*([^<]*)$tdtr\s*$S13\s*([^<]*)$tdtr\s*$ww\s*$S14([^<]*)$tdtr\s*$qq\("(\w+@\w+\.\w+)/write_data()/isge; #Неработает полное $fl=~s/$S1\s*([^<]*)\s*$br\s*$br\s*$S2\s*([^<]*)\s*$br\s*$br\s*$S3\s*([^<]*)\s*$br\s*$br\s*\s*$td\s*$tr\s*$S4\s*([^<]*)$tdtr\s*$S5\s*([^<]*)$tdtr\s*$S6\s*([^<]*)$tdtr\s*$S7\s*([^<]*)$tdtr\s*$S8\s*([^<]*)$tdtr\s*$S9\s*([^<]*)$tdtr\s*$S10\s*([^<]*)$tdtr\s*$S11\s*([^<]*)$tdtr\s*$S12\s*([^<]*)$tdtr\s*$S13\s*([^<]*)$tdtr\s*$ww\s*$S14([^<]*)$tdtr\s*$qq\("(\w+@\w+\.\w+)/write_data()/isge; Есть ли выход из этого положения? И можно ли то сделать по другому... тоесть я делаю fl=~s/.../write_data()/ge По моему это сделано через Ж. Может можно иначе??? |