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 декабря 2023 года в 15:00            →
        
        
            Перекличка
            21 OlegL, 17 декабря 2023 года в 15:00            →
        
        
            Перекличка
            21
-   REDkiy, 8 июня 2023 года в 9:09            →
        
        
            Как «замокать» файл для юниттеста в Python?
            2 REDkiy, 8 июня 2023 года в 9:09            →
        
        
            Как «замокать» файл для юниттеста в Python?
            2
-   fhunter, 29 ноября 2022 года в 2:09            →
        
        
            Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt?
            6 fhunter, 29 ноября 2022 года в 2:09            →
        
        
            Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt?
            6
-   Иванн, 9 апреля 2022 года в 8:31            →
        
        
            Ассоциация РАСПО провела первое учредительное собрание
            1 Иванн, 9 апреля 2022 года в 8:31            →
        
        
            Ассоциация РАСПО провела первое учредительное собрание
            1
-   Kiri11.ADV1, 7 марта 2021 года в 12:01            →
        
        
            Логи catalina.out в TomCat 9 в формате JSON
            1 Kiri11.ADV1, 7 марта 2021 года в 12:01            →
        
        
            Логи catalina.out в TomCat 9 в формате JSON
            1
 DevOps as a Service from Palark
DevOps as a Service from Palark
	

 
							
Насколько въехал:
У тебя ищется до
, а должно быть
Нет. В моём сообщении Код_2 является концом Код_1. И ищу я именно securityBean.
Чтобы было проще: <font color=«blue»>код</font>, <font color=«blue»>файл</font>
Думать что-то не получается, но тебя спасёт замена в выражении всех
на
В общем, да. Curu3MyHg-у — +1. И я, myst, тебе говорил о том же в jabber ;-)
Сейчас протестил с файлом. Вот такой код:
while ($xhtml =~ /\<[^\<]*?\s(rendered|test|value)="#\{([^\<]*?securityBean\.perms.*?)\}"([^\<]*?\ssec unote="([^\<]*?)")?/gis) { print "* $&\n"; }Вернул по твоему файлику следующее:
* * * actionMethod="showPhoto" rendered="#{securityBean.perms['profile_photo_edit']}" * reRender="personBasicInfoPanel" rendered="#{securityBean.perms['profile_basic_info_edit']}"Как понимаю, это именно то, что ты хотел увидеть.
Таки да! Но! Так же не должно быть… т.е. '.*?' должно тоже работать. Так-с, надо поковыряться во Фридле.
Итак, согласно Фридлу, *? — нежадный (lazy) квантификатор, что означает, что он остановится, как только совпадёт, и не будет искать максимальное совпадение. Но нигде не сказано, откуда должно начинаться совпадение в таком случае. Поэтому сделаю, как вы предлагаете.
Спасибо за помощь.