2012-11-19 6 views
0

Je cherche un moyen de nettoyer les chaînes de leur plus long motif répétitif.Trouver un motif répétitif dans une liste de chaînes

J'ai une liste d'environ 1000 titres de pages Web, et ils partagent tous un suffixe commun, qui est le nom du site Web.

Ils suivent ce modèle:

['art gallery - museum and visits | expand knowledge', 
'lasergame - entertainment | expand knowledge', 
'coffee shop - confort and food | expand knowledge', 
... 
] 

Comment pourrais-je dépouiller automatiquement toutes les chaînes de leur suffixe commun " | expand knowledge" ?

Merci!

Editer: Désolé, je ne me suis pas suffisamment expliqué. Je n'ai aucune information sur le suffixe " | expand knowledge" à l'avance. Je veux être en mesure d'effacer une liste de chaînes d'un suffixe commun potentiel, même si je ne sais pas ce que c'est.

+0

pouvez-vous développer un peu vos besoins. En ce moment, il semble que vous demandiez quelque chose qui prendra un temps de calcul fou. –

+0

@SamIam Je travaille sur un crawler besoin de connaissances minimales sur la structure HTML du site Web cible. Je raccroche le titre d'une page de la balise HTML . Toutes les pages de ce site Web contiennent un modèle commun ('' | expand knowledge''), dont j'aimerais beaucoup me débarrasser, pour éviter toute redondance. Le problème principal est que je n'ai aucune information sur le suffixe à l'avance, car le crawler serait publié sur plusieurs sites Web. – <span class="text-secondary"> <small> <span></span> </small> </span> </p> </div> </div> </div> </div> </div> </article> </div> <div class="answer-title"> <span class="text-logo margin-top-sm">A</span> <h2 class="title h4">Répondre</h2> </div> <div class="item-description text-md markdown-body margin-bottom-40 voidso"> <article class="board-top-1 padding-top-10"> <div class="post-col vote-info"> <span class="count">4<i class="fa fa-thumbs-up"></i></span> <i class="fa fa-check fa-2x"></i> </div> <div class="post-offset"> <div class="answer fmt"> <p>Voici une solution en utilisant la fonction <a href="https://docs.python.org/2/library/os.path.html#os.path.commonprefix" rel="nofollow"><code class="prettyprint-override">os.path.commonprefix</code></a> sur la renversées titres:</p> <pre><code class="prettyprint-override">titles = ['art gallery - museum and visits | expand knowledge', 'lasergame - entertainment | expand knowledge', 'coffee shop - confort and food | expand knowledge', ] # Find the longest common suffix by reversing the strings and using a # library function to find the common "prefix". common_suffix = os.path.commonprefix([title[::-1] for title in titles])[::-1] # Strips all titles from the number of characters in the common suffix. stripped_titles = [title[:-len(common_suffix)] for title in titles] </code></pre> <p>Résultat:</p> <blockquote> <p>[ 'galerie d'art - musée et visites', 'lasergame - divertissement', 'coffee shop - confort et la nourriture']</p> </blockquote> <p>Parce qu'il trouve le suffixe commun par lui-même, il devrait fonctionner sur n'importe quel groupe de titres, même si vous ne connaissez pas le suffixe.</p> </div> <div class="post-info"> <div class="post-meta row"> <p class="text-secondary col-lg-6"> <span class="source"> <a rel="noopener" target="_blank" href="https://stackoverflow.com/q/13461651">Source</a> </span> </p> <p class="text-secondary col-lg-6"> <span class="float-right date"> <span>2012-11-19 20:28:35</span> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/252218/">BoppreH</a></span> </p> <p class="col-12"></p> <p class="col-12"></p></div> </div> <!-- comments --> <div class="comments"> <div itemprop="comment" class="post-comment"> <div class="row"> <div class="col-lg-1"><span class="text-secondary">+0</span></div> <div class="col-lg-11"> <p class="commenttext">c'est parfait, merci! – <span class="text-secondary"> <small> <span></span> </small> </span> </p> </div> </div> </div> <div itemprop="comment" class="post-comment"> <div class="row"> <div class="col-lg-1"><span class="text-secondary">+0</span></div> <div class="col-lg-11"> <p class="commenttext">@BalthazarRouberol Méfiez-vous, que si par coïncidence, les dernières lettres dans chaque entrée est la même, cela retournera également cette dernière lettre. – <span class="text-secondary"> <small> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/1566861/">kreativitea</a></span> <span></span> </small> </span> </p> </div> </div> </div> </div> </div> </article> <div> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6208739752673518" data-ad-slot="4319274062" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <article class="board-top-1 padding-top-10"> <div class="post-col vote-info"> <span class="count">1<i class="fa fa-thumbs-up"></i></span> </div> <div class="post-offset"> <div class="answer fmt"> <p>Si vous êtes certain que toutes les chaînes ont le suffixe commun, cela fera l'affaire:</p> <pre><code class="prettyprint-override">strings = [ 'art gallery - museum and visits | expand knowledge', 'lasergame - entertainment | expand knowledge'] suffixlen = len(" | expand knowledge") print [s[:-suffixlen] for s in strings] </code></pre> <p>sortie:</p> <pre><code class="prettyprint-override">['art gallery - museum and visits', 'lasergame - entertainment'] </code></pre> </div> <div class="post-info"> <div class="post-meta row"> <p class="text-secondary col-lg-6"> <span class="source"> <a rel="noopener" target="_blank" href="https://stackoverflow.com/q/13461602">Source</a> </span> </p> <p class="text-secondary col-lg-6"> <span class="float-right date"> <span>2012-11-19 20:25:22</span> </p> <p class="col-12"></p> <p class="col-12"></p></div> </div> </div> </article> <article class="board-top-1 padding-top-10"> <div class="post-col vote-info"> <span class="count">0<i class="fa fa-thumbs-up"></i></span> </div> <div class="post-offset"> <div class="answer fmt"> <p>Si vous connaissez réellement le suffixe que vous souhaitez supprimer, vous pouvez simplement faire:</p> <pre><code class="prettyprint-override">suffix = " | expand knowledge" your_list = ['art gallery - museum and visits | expand knowledge', 'lasergame - entertainment | expand knowledge', 'coffee shop - confort and food | expand knowledge', ...] new_list = [name.rstrip(suffix) for name in your_list] </code></pre> </div> <div class="post-info"> <div class="post-meta row"> <p class="text-secondary col-lg-6"> <span class="source"> <a rel="noopener" target="_blank" href="https://stackoverflow.com/q/13461632">Source</a> </span> </p> <p class="text-secondary col-lg-6"> <span class="float-right date"> <span>2012-11-19 20:27:03</span> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/429982/">Gerrat</a></span> </p> <p class="col-12"></p> <p class="col-12"></p></div> </div> </div> </article> </div> <div class="clearfix"> </div> <div class="relative-box"> <div class="relative">Questions connexes</div> <ul class="relative_list"> <li> 1. <a href="http://fr.voidcc.com/question/p-rckuzhhb-eg.html" target="_blank" title="Java motif répétitif correspondant"> Java motif répétitif correspondant </a> </li> <li> 2. <a href="http://fr.voidcc.com/question/p-hctgnxxq-kw.html" target="_blank" title="Essayer d'obtenir un motif répétitif dans .gitignore"> Essayer d'obtenir un motif répétitif dans .gitignore </a> </li> <li> 3. <a href="http://fr.voidcc.com/question/p-bjtqcsae-gz.html" target="_blank" title="preg_replace avec motif répétitif"> preg_replace avec motif répétitif </a> </li> <li> 4. <a href="http://fr.voidcc.com/question/p-cfnxzzzr-hs.html" target="_blank" title="Pyparsing séquence de motif répétitif"> Pyparsing séquence de motif répétitif </a> </li> <li> 5. <a href="http://fr.voidcc.com/question/p-yjevpfsm-md.html" target="_blank" title="expression régulière pour trouver le motif répétitif + X + X + X"> expression régulière pour trouver le motif répétitif + X + X + X </a> </li> <li> 6. <a href="http://fr.voidcc.com/question/p-nibmrjgt-vu.html" target="_blank" title="comment trouver un motif d'éléments de chaîne dans une liste?"> comment trouver un motif d'éléments de chaîne dans une liste? </a> </li> <li> 7. <a href="http://fr.voidcc.com/question/p-ttpfultz-hp.html" target="_blank" title="Capture du sous-motif répétitif"> Capture du sous-motif répétitif </a> </li> <li> 8. <a href="http://fr.voidcc.com/question/p-svzyxlge-ba.html" target="_blank" title="Php reg exp: Motif répétitif correspondant"> Php reg exp: Motif répétitif correspondant </a> </li> <li> 9. <a href="http://fr.voidcc.com/question/p-wdnvyzuw-kp.html" target="_blank" title="capture d'un motif répétitif sans contrainte"> capture d'un motif répétitif sans contrainte </a> </li> <li> 10. <a href="http://fr.voidcc.com/question/p-acshbshu-dx.html" target="_blank" title="problème lookbehind positif et motif répétitif"> problème lookbehind positif et motif répétitif </a> </li> <li> 11. <a href="http://fr.voidcc.com/question/p-ysykcnve-dm.html" target="_blank" title="Comment faire une cellule de table personnalisée avec un motif d'image répétitif dans Wikipedia?"> Comment faire une cellule de table personnalisée avec un motif d'image répétitif dans Wikipedia? </a> </li> <li> 12. <a href="http://fr.voidcc.com/question/p-ppgwulsp-gr.html" target="_blank" title="trouver un motif correspondant de la liste des éléments"> trouver un motif correspondant de la liste des éléments </a> </li> <li> 13. <a href="http://fr.voidcc.com/question/p-sqogqclk-bx.html" target="_blank" title="Python: Trouver X à Y dans une liste de chaînes"> Python: Trouver X à Y dans une liste de chaînes </a> </li> <li> 14. <a href="http://fr.voidcc.com/question/p-kosnqfka-gt.html" target="_blank" title="Comment trouver la chaîne correspondante dans une liste de chaînes"> Comment trouver la chaîne correspondante dans une liste de chaînes </a> </li> <li> 15. <a href="http://fr.voidcc.com/question/p-blzvkhhi-o.html" target="_blank" title="Besoin d'aide pour convertir motif répétitif dans la formule"> Besoin d'aide pour convertir motif répétitif dans la formule </a> </li> <li> 16. <a href="http://fr.voidcc.com/question/p-wykpvfuh-ep.html" target="_blank" title="Comment trouver un motif ### _____ ### dans un paragraphe"> Comment trouver un motif ### _____ ### dans un paragraphe </a> </li> <li> 17. <a href="http://fr.voidcc.com/question/p-rprfvyag-dg.html" target="_blank" title="trouver un motif dans un fichier"> trouver un motif dans un fichier </a> </li> <li> 18. <a href="http://fr.voidcc.com/question/p-fvctwuqx-kz.html" target="_blank" title="Trouver la sous-chaîne dans une liste de chaînes"> Trouver la sous-chaîne dans une liste de chaînes </a> </li> <li> 19. <a href="http://fr.voidcc.com/question/p-dosqmjml-kd.html" target="_blank" title="motif correspondre à une dans une liste"> motif correspondre à une dans une liste </a> </li> <li> 20. <a href="http://fr.voidcc.com/question/p-adeljapa-gc.html" target="_blank" title="trouver un objet dans la liste des chaînes finales statiques"> trouver un objet dans la liste des chaînes finales statiques </a> </li> <li> 21. <a href="http://fr.voidcc.com/question/p-gmogqkut-gn.html" target="_blank" title="Regex pour trouver des chaînes avec motif raisonnable «/année »"> Regex pour trouver des chaînes avec motif raisonnable «/année » </a> </li> <li> 22. <a href="http://fr.voidcc.com/question/p-ftmpchhz-kc.html" target="_blank" title="motif complexe correspondant à des chaînes"> motif complexe correspondant à des chaînes </a> </li> <li> 23. <a href="http://fr.voidcc.com/question/p-kuvehhty-kt.html" target="_blank" title="Formulaire Regex qui trouve un motif dans un nombre décimal répétitif"> Formulaire Regex qui trouve un motif dans un nombre décimal répétitif </a> </li> <li> 24. <a href="http://fr.voidcc.com/question/p-vrnnwbvm-gv.html" target="_blank" title="Trouver fichier avec un motif"> Trouver fichier avec un motif </a> </li> <li> 25. <a href="http://fr.voidcc.com/question/p-yezjryym-ma.html" target="_blank" title="Trouver un motif dans une ligne mysql avec php"> Trouver un motif dans une ligne mysql avec php </a> </li> <li> 26. <a href="http://fr.voidcc.com/question/p-mdurzxlz-hs.html" target="_blank" title="Trouver un motif dans une chaîne et le remplacer"> Trouver un motif dans une chaîne et le remplacer </a> </li> <li> 27. <a href="http://fr.voidcc.com/question/p-ffqczami-x.html" target="_blank" title="jquery - Trouver un motif n'importe où dans une chaîne?"> jquery - Trouver un motif n'importe où dans une chaîne? </a> </li> <li> 28. <a href="http://fr.voidcc.com/question/p-vtpqqtne-kw.html" target="_blank" title="Trouver un motif non exhaustif"> Trouver un motif non exhaustif </a> </li> <li> 29. <a href="http://fr.voidcc.com/question/p-odxpbrsm-cr.html" target="_blank" title="Trouver un motif de conception dans cette situation"> Trouver un motif de conception dans cette situation </a> </li> <li> 30. <a href="http://fr.voidcc.com/question/p-ponmzcpd-gp.html" target="_blank" title="Rechercher les mêmes sous-chaînes dans une liste de chaînes"> Rechercher les mêmes sous-chaînes dans une liste de chaînes </a> </li> </ul> </div> <div> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-6208739752673518" data-ad-slot="3534119089"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="padding-top-10"></div> </div> </div> <script type="text/javascript" src="http://img2.voidcc.com/voidso/script/side.js?t=1652515422260"></script> <script type="text/javascript" src="http://img2.voidcc.com/voidso/plugin/highlight/highlight.pack.js"></script> <link href="http://img2.voidcc.com/voidso/plugin/highlight/styles/docco.css" media="screen" rel="stylesheet" type="text/css" /> <script type="text/javascript"> $('pre').each(function(i, e) { hljs.highlightBlock(e, "<span class='indent'> </span>", false) }); </script> <div class="col-lg-3 col-md-4 col-sm-5"> <div id="rightTop"> <div class="row"> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- VOIDCC问答侧边栏广告 --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6208739752673518" data-ad-slot="3862022848" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="row sidebar panel panel-default"> <div class="panel-heading font-bold"> Dernière question </div> <div class="m-b-sm m-t-sm clearfix"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://fr.voidcc.com/question/p-kyzwkyfy-bkx.html" target="_blank" title="Comment filtrer le tableau d'objets en réagissant natif?"> Comment filtrer le tableau d'objets en réagissant natif? </a> </li> <li class="side_article_list_item"> 2. <a href="http://fr.voidcc.com/question/p-kkudrvlf-bkx.html" target="_blank" title="Est-il possible d'extraire des données en utilisant la clause where avec la relation de l'enfant laravel"> Est-il possible d'extraire des données en utilisant la clause where avec la relation de l'enfant laravel </a> </li> <li class="side_article_list_item"> 3. <a href="http://fr.voidcc.com/question/p-ucdowluf-bky.html" target="_blank" title="PHP/CSS onmouseover et onmouse out ne fonctionne pas avec PHP echo"> PHP/CSS onmouseover et onmouse out ne fonctionne pas avec PHP echo </a> </li> <li class="side_article_list_item"> 4. <a href="http://fr.voidcc.com/question/p-vcitgnro-bky.html" target="_blank" title="Comment se connecter et utiliser google cloud sql pour accéder à la base de données?"> Comment se connecter et utiliser google cloud sql pour accéder à la base de données? </a> </li> <li class="side_article_list_item"> 5. <a href="http://fr.voidcc.com/question/p-dzupbmqo-bky.html" target="_blank" title="Demandes Python - débogage des requêtes POST"> Demandes Python - débogage des requêtes POST </a> </li> <li class="side_article_list_item"> 6. <a href="http://fr.voidcc.com/question/p-pqgxfxpa-bky.html" target="_blank" title="Chargeur gif lorsque le composant charge angulaire 2"> Chargeur gif lorsque le composant charge angulaire 2 </a> </li> <li class="side_article_list_item"> 7. <a href="http://fr.voidcc.com/question/p-ndvwhvfy-bky.html" target="_blank" title="My App Metadata Rejeté"> My App Metadata Rejeté </a> </li> <li class="side_article_list_item"> 8. <a href="http://fr.voidcc.com/question/p-vsgtyjwh-bkw.html" target="_blank" title="django login() prend 1 argument positionnel mais 2 ont été donnés"> django login() prend 1 argument positionnel mais 2 ont été donnés </a> </li> <li class="side_article_list_item"> 9. <a href="http://fr.voidcc.com/question/p-ovorsgnh-bkw.html" target="_blank" title="Provision Ubuntu/xenial64 en utilisant Vagrant et Ansible"> Provision Ubuntu/xenial64 en utilisant Vagrant et Ansible </a> </li> <li class="side_article_list_item"> 10. <a href="http://fr.voidcc.com/question/p-knhgflma-bkw.html" target="_blank" title="Ajout de plusieurs UIButton à plusieurs UIView dans Swift"> Ajout de plusieurs UIButton à plusieurs UIView dans Swift </a> </li> </ul> </div> </div> </div> <p class="article-nav-bar"></p> <div class="row sidebar article-nav"> <div class="row box_white visible-sm visible-md visible-lg margin-zero"> <div class="top"> <h3 class="title"><i class="glyphicon glyphicon-th-list"></i> Questions connexes</h3> </div> <div class="article-relative-content"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://fr.voidcc.com/question/p-rckuzhhb-eg.html" target="_blank" title="Java motif répétitif correspondant"> Java motif répétitif correspondant </a> </li> <li class="side_article_list_item"> 2. <a href="http://fr.voidcc.com/question/p-hctgnxxq-kw.html" target="_blank" title="Essayer d'obtenir un motif répétitif dans .gitignore"> Essayer d'obtenir un motif répétitif dans .gitignore </a> </li> <li class="side_article_list_item"> 3. <a href="http://fr.voidcc.com/question/p-bjtqcsae-gz.html" target="_blank" title="preg_replace avec motif répétitif"> preg_replace avec motif répétitif </a> </li> <li class="side_article_list_item"> 4. <a href="http://fr.voidcc.com/question/p-cfnxzzzr-hs.html" target="_blank" title="Pyparsing séquence de motif répétitif"> Pyparsing séquence de motif répétitif </a> </li> <li class="side_article_list_item"> 5. <a href="http://fr.voidcc.com/question/p-yjevpfsm-md.html" target="_blank" title="expression régulière pour trouver le motif répétitif + X + X + X"> expression régulière pour trouver le motif répétitif + X + X + X </a> </li> <li class="side_article_list_item"> 6. <a href="http://fr.voidcc.com/question/p-nibmrjgt-vu.html" target="_blank" title="comment trouver un motif d'éléments de chaîne dans une liste?"> comment trouver un motif d'éléments de chaîne dans une liste? </a> </li> <li class="side_article_list_item"> 7. <a href="http://fr.voidcc.com/question/p-ttpfultz-hp.html" target="_blank" title="Capture du sous-motif répétitif"> Capture du sous-motif répétitif </a> </li> <li class="side_article_list_item"> 8. <a href="http://fr.voidcc.com/question/p-svzyxlge-ba.html" target="_blank" title="Php reg exp: Motif répétitif correspondant"> Php reg exp: Motif répétitif correspondant </a> </li> <li class="side_article_list_item"> 9. <a href="http://fr.voidcc.com/question/p-wdnvyzuw-kp.html" target="_blank" title="capture d'un motif répétitif sans contrainte"> capture d'un motif répétitif sans contrainte </a> </li> <li class="side_article_list_item"> 10. <a href="http://fr.voidcc.com/question/p-acshbshu-dx.html" target="_blank" title="problème lookbehind positif et motif répétitif"> problème lookbehind positif et motif répétitif </a> </li> </ul> </div> </div> </div> </div> </div> </div> </div><!-- wrap end--> <!-- footer --> <footer id="footer"> <div class="bg-simple lt"> <div class="container"> <div class="row padder-v m-t"> <div class="col-xs-8"> <ul class="list-inline"> <li><a href="http://fr.voidcc.com/contact">Nous contacter</a></li> <li>© 2020 FR.VOIDCC.COM</li> <li><a rel="nofollow" href="https://beian.miit.gov.cn/" target="_blank">沪ICP备13005482号-13</a></li> <li><script type="text/javascript" src="https://s9.cnzz.com/z_stat.php?id=1280098168&web_id=1280098168"></script></li> <li><a href="http://cn.voidcc.com/" target="_blank" title="程序问答园区">简体中文</a></li> <li><a href="http://hk.voidcc.com/" target="_blank" title="程序問答園區">繁體中文</a></li> <li><a href="http://ru.voidcc.com/" target="_blank" title="поле вопросов и ответов">Русский</a></li> <li><a href="http://de.voidcc.com/" target="_blank" title="Frage - und - antwort - Park">Deutsch</a></li> <li><a href="http://es.voidcc.com/" target="_blank" title="Preguntas y respuestas">Español</a></li> <li><a href="http://hi.voidcc.com/" target="_blank" title="कार्यक्रम प्रश्न और उत्तर पार्क">हिन्दी</a></li> <li><a href="http://it.voidcc.com/" target="_blank" title="IL Programma di chiedere Park">Italiano</a></li> <li><a href="http://ja.voidcc.com/" target="_blank" title="プログラム問答園区">日本語</a></li> <li><a href="http://ko.voidcc.com/" target="_blank" title="프로그램 문답 단지">한국어</a></li> <li><a href="http://pl.voidcc.com/" target="_blank" title="program o park">Polski</a></li> <li><a href="http://tr.voidcc.com/" target="_blank" title="Program soru ve cevap parkı">Türkçe</a></li> <li><a href="http://vi.voidcc.com/" target="_blank" title="Đáp ứng viên">Tiếng Việt</a></li> <li><a href="http://fr.voidcc.com/" target="_blank" title="Programme interrogation Park">Française</a></li> </ul> </div> </div> </div> </div> </div> </footer> <!-- / footer --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-77509369-5"></script> <script> window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments); } gtag('js', new Date()); gtag('config', 'UA-77509369-5'); </script> <script> var _hmt = _hmt || []; (function () { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?67d4731349f0b00136755b80364ce381"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </body> </html>