while ($xhtml =~ /<.*?\s(rendered|test|value)="#\{(.*?securityBean\.perms.*?)\}"(.*?\ssecunote="(.*?)")?/gis) { print "* $&\n"; }
В $xhtml целиком лежит XHTML-ка (кому надо, могу прислать, только не палите меня :). Выводит:
* </h:form></div> </div> </td>
<table>
<tr>
<td width=«50%»></td>
</tr>
</table>
</div>
<table class=«cTable» cellpadding=«0» cellspacing=«0»>
<tr>
<td class="padShort padFreeSpace valignMiddle noWrap» width=«1%»></td></td>
<td class="padShort padFreeSpace» width=«49%»></td></td>
<td class="padShort padFreeSpace valignMiddle noWrap» width=«1%»></td></td>
<td class="padShort padFreeSpace noWrap mailINP» width=«49%»></td>
</tr>
</td>
</tr>
<tr>
<td class="padShort padFreeSpace valignMiddle noWrap"></td></td>
<td class="padShort padFreeSpace noWrap"></td></td>
<td class="padShort padFreeSpace valignMiddle noWrap"></td></td>
<td class="padShort padFreeSpace noWrap dateINP» width=«1%» colspan=«3»></td>
</tr>
</table>
</div>
</div>
</div>
</h:form>
<table class=«cTable»>
<tr>
<td width=«50%»> </td></td>
<td>
</rich:column>
</rich:column>
</rich:column>
</rich:column>
</rich:column>
</ui:define>
</h:outputText>
</rich:column>
</rich:column>
</rich:column>
</rich:column>
rendered="#{securityBean.perms['accounts_ch_password']}» secunote="Change password for account»
* rendered="#{securityBean.perms['accounts_ch_password']}" secunote="Change password for account"
А ведь вначале regex стоит «<.*?». Никак не пойму, где косяк…
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
Насколько въехал:
У тебя ищется до
, а должно быть
Нет. В моём сообщении Код_2 является концом Код_1. И ищу я именно securityBean.
Чтобы было проще: <font color=«blue»>код</font>, <font color=«blue»>файл</font>
Думать что-то не получается, но тебя спасёт замена в выражении всех
на
В общем, да. Curu3MyHg-у — +1. И я, myst, тебе говорил о том же в jabber ;-)
Сейчас протестил с файлом. Вот такой код:
Вернул по твоему файлику следующее:
Как понимаю, это именно то, что ты хотел увидеть.
Таки да! Но! Так же не должно быть… т.е. '.*?' должно тоже работать. Так-с, надо поковыряться во Фридле.
Итак, согласно Фридлу, *? — нежадный (lazy) квантификатор, что означает, что он остановится, как только совпадёт, и не будет искать максимальное совпадение. Но нигде не сказано, откуда должно начинаться совпадение в таком случае. Поэтому сделаю, как вы предлагаете.
Спасибо за помощь.