В настоящее время я работаю со следующим блоком псевдокода, чтобы исправить проблему с регулярным выражением, с которой сталкиваюсь. В настоящее время я использую регулярное выражение для поиска / удаления различных пунктов меню на основе идентификатора, однако он работает только для дочерних элементов, а не для родительских записей. поэтому в этом примере я пытаюсь удалить id53, и если вы запустите псевдокод, вы увидите, что он нарушает структуру дерева b / c, но не удаляет весь блок <li></li>
.
У кого-нибудь есть идеи по настройке тестового шаблона регулярных выражений, с которым мы работаем? Я очень ценю вашу помощь и надеюсь, что вы отлично проведете неделю.
<cfsavecontent variable="pseudo">
<ul id="nav-main-links">
<li class="standby" id="id61"><a href="/?event=User.Home.dspHome" target="_self" title="Home"> Home<font class="menuItemType">(CB)</font></a>
<li class="standby" id="id53"><a href="/contactus.cfm" target="_self" title="Contacts"> Contacts<font class="menuItemType">(L)</font></a>
<ul class="sub-nav-main-links nestingLevel1">
<li class="standby" id="id54"><a href="http://test/index.cfm" target="_self" title="Ven"> Ven<font class="menuItemType">(X)</font></a></li>
<li class="standby" id="id55"><a href="http://test/spEvents.cfm" target="_self" title="SponsorShip"> SponsorShip<font class="menuItemType">(L)</font></a></li>
</ul>
</li>
</ul>
</cfsavecontent>
<cfscript>
myDisplay=structnew();
myDisplay.pseudo=pseudo;
myDisplay.IdsToRemove="53";
myDisplay.RegExTestPattern='<li[^>]*?id="id(' & myDisplay.IdsToRemove & ')".*?li>';
myDisplay.Menu=reReplaceNoCase(myDisplay.pseudo,myDisplay.RegExTestPattern,"","All");
</cfscript>
<cfdump var="#myDisplay#">