RegEx, соответствующий HTML-тэгам и извлекающий текст

Дословное содержание сложно. Вы должны спросить себя, каково намерение. Если это печатный код, то королем горы будет listings . Я бы предложил это и определил вашу собственную среду для больших кусков выходных данных, специфичных для кода.

Вот пример:

enter image description here

\documentclass{article}

\usepackage{listings}

\lstnewenvironment{code}[1][]
  {\lstset{#1}}% Add/update settings locally
  {}

\lstset{% Global options
  frame = single,
  basicstyle = \ttfamily\small,
  language = PHP
}

\begin{document}

My first PHP ``Hello World'' page:

\begin{code}

 
  PHP Test
 
 
 Hello World

'; ?> \end{code} When you write \lstinline!PHP Test</test>!, it sets the \textit{title} of the page. \end{document} </code></pre></p> </div> <div class="votes-question"> <div class="vote-count" itemprop="upvoteCount">7</div><i class="fa fa-thumbs-o-up"></i> </div> <div class="tags"> <a href="/questions/tagged/regex" class="tag" title="regex" rel="tag">regex</a> <a href="/questions/tagged/c#" class="tag" title="c#" rel="tag">c#</a> </div> <div class="clearfix"></div> <div class="action-time"> задан Jon Tackabury <span title="18 November 2008 в 20:01 ">18 November 2008 в 20:01 </span> </div> <a class="s-link" href="/questions/146565/regex-sootvetstvujuschij-html-tegam-i-izvlekajuschij-tekst" title="поделиться">поделиться</a> </div> </div> <div style="height:100px;margin:10px 0px;" class=""> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- siteask before post --> <ins class="adsbygoogle" style="display:block;height:100px" data-ad-client="ca-pub-2355906945027976" data-ad-slot="" data-ad-format="auto"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="answers" id="answers"> <h2 class="pull-left"><span itemprop="answerCount">4</span> ответа</h2> <div class="clearfix"></div> <div class="answer-pager"> <div class="pagination"> </div> </div> <div class="answer accepted" id="387064" itemscope="" itemtype="http://schema.org/Answer" itemprop="acceptedAnswer"> <div class="answer-row"> <div class="answer-text"> <div class="description" itemprop="text"> <p>Я не использовал бы regex ни один для этого, но если Вы должны, это выражение должно работать: <code><customtag>(.+?)</customtag></code></p> </div> <div class="votes-answer green"> <div class="vote-count" itemprop="upvoteCount">15</div><i class="fa fa-thumbs-o-up"></i> </div> <div class="clearfix"></div> <div class="action-time"> ответ дан <span title="6 December 2019 в 07:53 ">6 December 2019 в 07:53 </span> </div> <a class="s-link" href="/questions/146565/regex-sootvetstvujuschij-html-tegam-i-izvlekajuschij-tekst#584" title="поделиться">поделиться</a> </div> <div class="post-layout--right"> <div id="comments-387064"> <ul class="comments-list js-comments-list" data-remaining-comments-count="0" data-canpost="false" data-cansee="true" data-comments-unavailable="false" data-addlink-disabled="true"> </ul> </div> </div> </div> </div> <div class="answer" id="387071" itemscope="" itemtype="http://schema.org/Answer"> <div class="answer-row"> <div class="answer-text"> <div class="description" itemprop="text"> <p>Я жевал бы свой собственный участок прочь перед использованием регулярного выражения, чтобы проанализировать и изменить HTML.</p> <p>Используйте <a href="http://www.w3schools.com/xsl/xsl_languages.asp" rel="nofollow noreferrer">XSL</a> или <a href="http://www.w3schools.com/dom/default.asp" rel="nofollow noreferrer">DOM</a>.</p> <hr> <p>Два комментария попросили, чтобы я разъяснился. Работы замены регулярного выражения в конкретном случае в вопросе OP, но в общих регулярных выражениях не являются хорошим решением. Регулярные выражения могут соответствовать <a href="http://en.wikipedia.org/wiki/Regular_language" rel="nofollow noreferrer">регулярным языкам</a>, т.е. последовательности входа, который может быть принят конечным автоматом. HTML может содержать вложенные теги к любой произвольной глубине, таким образом, это не регулярный язык.</p> <p>Что это имеет отношение к вопросу? Используя регулярное выражение для вопроса OP, как это записано работы, но что если содержание между <code><customtag></code> теги содержат другие теги? Что, если литерал <code><</code> символ происходит в тексте? Это были 11 месяцев, с тех пор как Jon Tackabury задал вопрос, и я предположу, что в то время, сложность его проблемы, возможно, увеличилась.</p> <p>Регулярные выражения являются большими инструментами, и я действительно использую их все время. Но с помощью них вместо реального синтаксического анализатора для входа, которому нужно, каждый собирается работать только в очень простых случаях. Практически неизбежно, что эти случаи растут вне того, что могут обработать регулярные выражения. Когда это произойдет, Вы испытаете желание записать более сложное регулярное выражение, но они быстро становятся очень трудоемкими, чтобы разработать и отладить. Будьте готовы фрагментировать решение для регулярного выражения, когда требования парсинга расширятся.</p> <p>XSL и DOM являются двумя стандартными технологиями, разработанными для работы с XML или разметкой XHTML. Обе технологии знают, как проанализировать структурированные файлы разметки, отслеживать вложенные теги и позволить Вам преобразовывать атрибуты тегов или содержание.</p> <p>Вот несколько статей о том, как использовать XSL с C#:</p> <ul> <li><a href="http://www.csharpfriends.com/Articles/getArticle.aspx?articleID=63" rel="nofollow noreferrer">http://www.csharpfriends.com/Articles/getArticle.aspx?articleID=63</a></li> <li><a href="http://www.csharphelp.com/archives/archive78.html" rel="nofollow noreferrer">http://www.csharphelp.com/archives/archive78.html</a></li> </ul> <p>Вот несколько статей о том, как использовать DOM с C#:</p> <ul> <li><a href="http://msdn.microsoft.com/en-us/library/aa290341%28VS.71%29.aspx" rel="nofollow noreferrer">http://msdn.microsoft.com/en-us/library/aa290341%28VS.71%29.aspx</a></li> <li><a href="http://blogs.msdn.com/tims/archive/2007/06/13/programming-html-with-c.aspx" rel="nofollow noreferrer">http://blogs.msdn.com/tims/archive/2007/06/13/programming-html-with-c.aspx</a></li> </ul> <p>Вот библиотека.NET, которая помогает DOM и операциям XSL на HTML:</p> <ul> <li><a href="http://www.codeplex.com/Wiki/View.aspx?ProjectName=htmlagilitypack" rel="nofollow noreferrer">http://www.codeplex.com/Wiki/View.aspx?ProjectName=htmlagilitypack</a></li> </ul> </div> <div class="votes-answer green"> <div class="vote-count" itemprop="upvoteCount">7</div><i class="fa fa-thumbs-o-up"></i> </div> <div class="clearfix"></div> <div class="action-time"> ответ дан <span title="6 December 2019 в 07:53 ">6 December 2019 в 07:53 </span> </div> <a class="s-link" href="/questions/146565/regex-sootvetstvujuschij-html-tegam-i-izvlekajuschij-tekst#584" title="поделиться">поделиться</a> </div> <div class="post-layout--right"> <div id="comments-387071"> <ul class="comments-list js-comments-list" data-remaining-comments-count="0" data-canpost="false" data-cansee="true" data-comments-unavailable="false" data-addlink-disabled="true"> </ul> </div> </div> </div> </div> <div class="answer" id="387074" itemscope="" itemtype="http://schema.org/Answer"> <div class="answer-row"> <div class="answer-text"> <div class="description" itemprop="text"> <p>Если не будет никаких других тегов между двумя тегами, этот regex немного более безопасен, и более эффективен:</p> <pre><code><customtag>[^<>]*</customtag> </code></pre> </div> <div class="votes-answer green"> <div class="vote-count" itemprop="upvoteCount">1</div><i class="fa fa-thumbs-o-up"></i> </div> <div class="clearfix"></div> <div class="action-time"> ответ дан <span title="6 December 2019 в 07:53 ">6 December 2019 в 07:53 </span> </div> <a class="s-link" href="/questions/146565/regex-sootvetstvujuschij-html-tegam-i-izvlekajuschij-tekst#584" title="поделиться">поделиться</a> </div> <div class="post-layout--right"> <div id="comments-387074"> <ul class="comments-list js-comments-list" data-remaining-comments-count="0" data-canpost="false" data-cansee="true" data-comments-unavailable="false" data-addlink-disabled="true"> </ul> </div> </div> </div> </div> <div class="answer" id="865550" itemscope="" itemtype="http://schema.org/Answer"> <div class="answer-row"> <div class="answer-text"> <div class="description" itemprop="text"> <pre><code>//This is to replace all HTML Text var re = new RegExp("<[^>]*>", "g"); var x2 = Content.replace(re,""); //This is to replace all &nbsp; var x3 = x2.replace(/\u00a0/g,''); </code></pre> </div> <div class="votes-answer"> <div class="vote-count" itemprop="upvoteCount">0</div><i class="fa fa-thumbs-o-up"></i> </div> <div class="clearfix"></div> <div class="action-time"> ответ дан <span title="6 December 2019 в 07:53 ">6 December 2019 в 07:53 </span> </div> <a class="s-link" href="/questions/146565/regex-sootvetstvujuschij-html-tegam-i-izvlekajuschij-tekst#584" title="поделиться">поделиться</a> </div> <div class="post-layout--right"> <div id="comments-865550"> <ul class="comments-list js-comments-list" data-remaining-comments-count="0" data-canpost="false" data-cansee="true" data-comments-unavailable="false" data-addlink-disabled="true"> </ul> </div> </div> </div> </div> <div style="margin-top: 20px;"> Другие вопросы по тегам: <div class="tags" style="display: inline-block; float: none;"> <a href="/questions/tagged/regex" class="tag" title="regex" rel="tag">regex</a> <a href="/questions/tagged/c#" class="tag" title="c#" rel="tag">c#</a> </div> <h3 class="m-t-20">Похожие вопросы:</h3> <div class="related-block"> <ul> <li><div class='votes-answer green'><span class='vote-count'>295</span> <i class="fa fa-thumbs-o-up"></i></div> <a href="/questions/89499/skrytye-vozmozhnosti-c-zakryto" title="Скрытые возможности C #? [закрыто]">Скрытые возможности C #? [закрыто]</a> - 25 September 2017 20:53 </li> <li><div class='votes-answer green'><span class='vote-count'>115</span> <i class="fa fa-thumbs-o-up"></i></div> <a href="/questions/83765/kakie-vashi-ljubimye-metody-rasshirenija-dlja-c-codeplex-com-extensionoverflow" title="Какие ваши любимые методы расширения для C #? (Codeplex.com/extensionoverflow)">Какие ваши любимые методы расширения для C #? (Codeplex.com/extensionoverflow)</a> - 23 May 2017 12:18 </li> <li><div class='votes-answer green'><span class='vote-count'>81</span> <i class="fa fa-thumbs-o-up"></i></div> <a href="/questions/96626/ispolzovanie-kljuchevogo-slova-var-v-c" title="Использование ключевого слова var в C #">Использование ключевого слова var в C #</a> - 3 February 2015 03:25 </li> <li><div class='votes-answer green'><span class='vote-count'>51</span> <i class="fa fa-thumbs-o-up"></i></div> <a href="/questions/138697/pochemu-eto-schitajut-plohoj-praktikoj-dlja-iskljuchenija-figurnyh-skobok-zakrytyj" title="Почему это считают плохой практикой для исключения фигурных скобок? [закрытый]">Почему это считают плохой практикой для исключения фигурных скобок? [закрытый]</a> - 19 August 2016 17:07 </li> <li><div class='votes-answer green'><span class='vote-count'>48</span> <i class="fa fa-thumbs-o-up"></i></div> <a href="/questions/96780/chto-takoe-hudshaja-oshibka-v-c-ili-net-zakryto" title="Что такое худшая ошибка в C # или .NET? [закрыто]">Что такое худшая ошибка в C # или .NET? [закрыто]</a> - 13 August 2015 04:30 </li> <li><div class='votes-answer green'><span class='vote-count'>41</span> <i class="fa fa-thumbs-o-up"></i></div> <a href="/questions/125521/chto-za-i-protiv-javljajutsja-k-uderzhaniju-sql-sohranennym-procs-po-sravneniju-s-zakrytym-kodom" title="Что за и против являются к удержанию SQL Сохраненным Procs по сравнению с [закрытым] Кодом">Что за и против являются к удержанию SQL Сохраненным Procs по сравнению с [закрытым] Кодом</a> - 27 October 2008 14:46 </li> <li><div class='votes-answer green'><span class='vote-count'>38</span> <i class="fa fa-thumbs-o-up"></i></div> <a href="/questions/182085/kakovo-luchshee-ili-samoe-interesnoe-ispolzovanie-dopolnitelnyh-metodov-kotorye-vy-videli-zakrytyj" title="Каково лучшее или самое интересное использование Дополнительных Методов, которые Вы видели? [закрытый]">Каково лучшее или самое интересное использование Дополнительных Методов, которые Вы видели? [закрытый]</a> - 4 May 2012 03:22 </li> </ul> </div> </div> </div> </div> </div> <aside class="sidebar"> <div class="awrap"> <script async src="https://yastatic.net/pcode-native/loaders/loader.js"></script> <script> (yaads = window.yaads || []).push({ id: "553274-2", render: "#id-553274-2" }); </script> <div id="id-553274-2"></div> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:inline-block;width:300px;height:600px" data-ad-client="ca-pub-2355906945027976" data-ad-slot="8038370725"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </aside> </div> </div> <footer class="footer"> <div class="wrapper wrapper--sm"> <div class="footer-navs-col"> <div class="footer-nav footer-nav--menu"> <div class="footer-coryright">© 2017 - 2020 Вопросы и ответы по программированию</div> </div> <div class="footer-nav footer-nav--catalog"> </div> </div> <div class="footer-contacts-col"> <div class="soc-widget-col"> </div> </div> <div class="clearfix"></div> </div> </footer> </div> <script type="text/javascript" src="/js/ui/jquery-ui-1.8.16.custom.min.js"></script> <script type="text/javascript" src="/js/ui/external/jquery.cookie.js"></script> <script type="text/javascript" src="/js/versions/menu.ru.u1607887878.js"></script> <script type="text/javascript" src="/js/jquery.fancybox.min.js"></script> <script type="text/javascript" src="/js/slick.min.js"></script> <script type="text/javascript" src="/js/jquery.maskedinput.min.js"></script> <script type="text/javascript" src="/js/versions/scripts.ru.u1607887878.js"></script> <!-- Yandex.Metrika counter --> <script type="text/javascript" > (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; var z = null;m[i].l=1*new Date(); for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }} k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym"); ym(90030325, "init", { clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true }); </script> <noscript><div><img src="https://mc.yandex.ru/watch/90030325" style="position:absolute; left:-9999px;" alt="" /></div></noscript> <!-- /Yandex.Metrika counter --> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-123993370-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-123993370-1'); </script> </div> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "WebSite", "name": "Программирование - вопросы и ответы", "alternateName": "Программирование - вопросы и ответы", "url": "https://legkovopros.ru", "potentialAction": { "@type": "SearchAction", "target": "https://legkovopros.ru/search?search={search_term_string}", "query-input": "required name=search_term_string" } } { "@context": "https://schema.org", "@type": "Organization", "name": "Программирование - вопросы и ответы", "url": "https://legkovopros.ru", "logo": "https://legkovopros.ru/i/logo.png", "email": "info@legkovopros.ru", "telephone": "" } </script> </body> </html>