2012-12-09 75 views
0

我想分割一個字符串並遇到麻煩。在導軌中選擇一個字符串的多個部分

在軌道,我有一個很長的字符串,並在其中,這樣的事情會發生3-6次:

bunchofotherstringstuffandcharacters"hisquote":"The most important aspect of the painting was the treatment of lighting.","lp":andthenalotmorestringandcharacters 

我要切出「繪畫的最重要的方面是治療的照明「,以及落在他的引用和lp之間的其他實例。

的「hisquote」自帶之前,它是唯一我想要的字符串,因此是自帶的。「」 LP後

我怎樣才能找回它們之間的字符串的所有實例兩個標識符?

回答

0

所以像這樣?我假設您的分隔符:,在整個字符串中是一致的,並且使用雙引號"來包含所需的字符串。

# escape double quotes 
longstring = %q(bunchofotherstringstuffandcharacters"hisquote":"The most important aspect of the painting was the treatment of lighting.","lp":andthenalotmorestringandcharacters) 

# split on double quotes 
substrings = longstring.split("\"").to_enum 

# somewhere to sure the strings you want 
save = [] 

# use a rescue clause to detect that the enumerator 'substrings' as reached an end 
begin 
    while true do 
     remember = substrings.next 
     case substrings.peek # lets see if that next element is our deliminator 
     when ":" # Once the semicolon is spotted ahead, grab the three strings we want. 
      save << remember 
      substrings.next # skip the ":" 
      save << substrings.next 
      substrings.next # skip the "," 
      save << substrings.next 
     end 
    end 
rescue StopIteration => e 
    puts "End of Substring Enumeration was reached." 
ensure 
    puts save.inspect #=> ["hisquote", "The most important aspect of the painting was the treatment of lighting.", "lp"] 
end 
+0

我認爲這很棘手,因爲「bunchofotherstringstuffandcharacters」實際上充滿了每種類型的角色 - 引號,斜線,冒號......一切。例如:<?xml version =「1.0」encoding =「utf-8」?><!DOCTYPE html PUBLIC「 - // W3C // DTD XHTML 1.0 Strict // EN」「http://www.w3.org /TR/xhtml1/DTD/xhtml1-strict.dtd「> - 正如您所見,它是html內容。但是,分隔符指出,「hisquote」:和「」,「lp是唯一的 – <span class="text-secondary"> <small> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/1824695/">Theiteg</a></span> <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">難以讓它們向右 - 它是,hisquote」:「 也就是說,hisquote後面跟着雙引號,然後是一個冒號,然後是另一個雙引號 - 這是在想要的字符串前面的唯一分隔符 – <span class="text-secondary"> <small> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/1824695/">Theiteg</a></span> <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">好的,所以通過說'hisquote':「'和'。」,「lp」是唯一的,你的意思是說在長字符串中,你需要的文本總是在這兩個分隔符之間?你還可以確定它不是「。」,「lp」和尾部的雙引號嗎? – <span class="text-secondary"> <small> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/985526/">bitstrider</a></span> <span></span> </small> </span> </p> </div> </div> </div> </div> </div> </article> <div> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6208739752673518" data-ad-slot="1038284119" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </div> <div class="clearfix"> </div> <div class="relative-box"> <div class="relative">相關問題</div> <ul class="relative_list"> <li> 1. <a href="http://hk.uwenku.com/question/p-djfxslvs-bnn.html" target="_blank" title="SQL - 一個字符串選擇部分"> SQL - 一個字符串選擇部分 </a> </li> <li> 2. <a href="http://hk.uwenku.com/question/p-ypnbnadg-zc.html" target="_blank" title="選擇字符串的一部分時,發現一個字符"> 選擇字符串的一部分時,發現一個字符 </a> </li> <li> 3. <a href="http://hk.uwenku.com/question/p-epfdiwrc-sh.html" target="_blank" title="選擇一個字符串的一部分"> 選擇一個字符串的一部分 </a> </li> <li> 4. <a href="http://hk.uwenku.com/question/p-gdinqofd-sy.html" target="_blank" title="SQL選擇字符串的多個部分!"> SQL選擇字符串的多個部分! </a> </li> <li> 5. <a href="http://hk.uwenku.com/question/p-qsagkxty-mv.html" target="_blank" title="選擇部分字符串"> 選擇部分字符串 </a> </li> <li> 6. <a href="http://hk.uwenku.com/question/p-pwpkobfj-bkc.html" target="_blank" title="選擇部分字符串"> 選擇部分字符串 </a> </li> <li> 7. <a href="http://hk.uwenku.com/question/p-aftignev-ko.html" target="_blank" title="選擇兩個括號之間的字符串的一部分"> 選擇兩個括號之間的字符串的一部分 </a> </li> <li> 8. <a href="http://hk.uwenku.com/question/p-xthvrcgd-beg.html" target="_blank" title="C#選擇字符串的一部分時,有一個匹配結果字符串的一部分"> C#選擇字符串的一部分時,有一個匹配結果字符串的一部分 </a> </li> <li> 9. <a href="http://hk.uwenku.com/question/p-cafbwxqg-tp.html" target="_blank" title="選擇與部分字符串匹配的第一個完整字符串"> 選擇與部分字符串匹配的第一個完整字符串 </a> </li> <li> 10. <a href="http://hk.uwenku.com/question/p-hwsjafnh-bgr.html" target="_blank" title="在視圖中選擇多個到多個模型的導軌"> 在視圖中選擇多個到多個模型的導軌 </a> </li> <div> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-6208739752673518" data-ad-slot="4606349252"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <li> 11. <a href="http://hk.uwenku.com/question/p-sivrhspo-dt.html" target="_blank" title="選擇一個字符串的特定部分C#"> 選擇一個字符串的特定部分C# </a> </li> <li> 12. <a href="http://hk.uwenku.com/question/p-dechbenq-ber.html" target="_blank" title="通過它的類部分字符串選擇一個元素"> 通過它的類部分字符串選擇一個元素 </a> </li> <li> 13. <a href="http://hk.uwenku.com/question/p-exqzotgt-bx.html" target="_blank" title="導軌形式:讓用戶選擇多個選項來完成字符串"> 導軌形式:讓用戶選擇多個選項來完成字符串 </a> </li> <li> 14. <a href="http://hk.uwenku.com/question/p-hhsoaxfp-tp.html" target="_blank" title="cakephp從列中的字符串中選擇多個字符串"> cakephp從列中的字符串中選擇多個字符串 </a> </li> <li> 15. <a href="http://hk.uwenku.com/question/p-avzucjju-sa.html" target="_blank" title="提取部分字符串從一個字符串在java中"> 提取部分字符串從一個字符串在java中 </a> </li> <li> 16. <a href="http://hk.uwenku.com/question/p-yovpvhcq-hk.html" target="_blank" title="如何在Visual Basic中選擇字符串的字符部分"> 如何在Visual Basic中選擇字符串的字符部分 </a> </li> <li> 17. <a href="http://hk.uwenku.com/question/p-qrkkxzml-ow.html" target="_blank" title="基於多個分隔符參與字符串的一部分?"> 基於多個分隔符參與字符串的一部分? </a> </li> <li> 18. <a href="http://hk.uwenku.com/question/p-ozqjslkc-bha.html" target="_blank" title="多選擇發送空字符串到導軌控制器"> 多選擇發送空字符串到導軌控制器 </a> </li> <li> 19. <a href="http://hk.uwenku.com/question/p-cydszqij-gk.html" target="_blank" title="選擇一個字符串中的某個字符"> 選擇一個字符串中的某個字符 </a> </li> <li> 20. <a href="http://hk.uwenku.com/question/p-olwfleme-ok.html" target="_blank" title="在Java中使用多個分隔符部分Tokenizing字符串"> 在Java中使用多個分隔符部分Tokenizing字符串 </a> </li> <li> 21. <a href="http://hk.uwenku.com/question/p-mmkcmxwl-bnn.html" target="_blank" title="將一個字符串分隔成多個部分"> 將一個字符串分隔成多個部分 </a> </li> <li> 22. <a href="http://hk.uwenku.com/question/p-btoaiind-sn.html" target="_blank" title="導軌形式選擇多個給出空的第一個值"> 導軌形式選擇多個給出空的第一個值 </a> </li> <li> 23. <a href="http://hk.uwenku.com/question/p-okdyevow-nx.html" target="_blank" title="在字符串中的字符之前選擇第一個int"> 在字符串中的字符之前選擇第一個int </a> </li> <li> 24. <a href="http://hk.uwenku.com/question/p-dbrnaurz-bp.html" target="_blank" title="在導軌中測試時排除部分字符串"> 在導軌中測試時排除部分字符串 </a> </li> <li> 25. <a href="http://hk.uwenku.com/question/p-nnduqpke-zr.html" target="_blank" title="拆分字符串中的多個部分在PHP"> 拆分字符串中的多個部分在PHP </a> </li> <li> 26. <a href="http://hk.uwenku.com/question/p-szlwehmt-bkp.html" target="_blank" title="C:從多字節字符串中選擇一個子字符串,n列寬"> C:從多字節字符串中選擇一個子字符串,n列寬 </a> </li> <li> 27. <a href="http://hk.uwenku.com/question/p-eihyslrr-bgd.html" target="_blank" title="多個選擇值和GET字符串"> 多個選擇值和GET字符串 </a> </li> <li> 28. <a href="http://hk.uwenku.com/question/p-dyyerite-bdr.html" target="_blank" title="選擇此字符串的某個部分"> 選擇此字符串的某個部分 </a> </li> <li> 29. <a href="http://hk.uwenku.com/question/p-ocytquhq-bgn.html" target="_blank" title="SQL使用一個字符串在一個選擇語句中的一個字符串連接一個變量"> SQL使用一個字符串在一個選擇語句中的一個字符串連接一個變量 </a> </li> <li> 30. <a href="http://hk.uwenku.com/question/p-qtvbbuzn-yg.html" target="_blank" title="用另一個字符串替換字符串的一部分"> 用另一個字符串替換字符串的一部分 </a> </li> </ul> </div> <div> <script async src="https://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="1575177025"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="padding-top-10"></div> </div> </div> <script type="text/javascript" src="http://img.uwenku.com/uwenku/script/side.js?t=1644592048261"></script> <script type="text/javascript" src="http://img.uwenku.com/uwenku/plugin/highlight/highlight.pack.js"></script> <link href="http://img.uwenku.com/uwenku/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="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6208739752673518" data-ad-slot="5415218910" 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"> 最新問題 </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://hk.uwenku.com/question/p-gtyakhcn-bkr.html" target="_blank" title="我如何從火力地堡/公司的FireStore通過屬性值排序文件"> 我如何從火力地堡/公司的FireStore通過屬性值排序文件 </a> </li> <li class="side_article_list_item"> 2. <a href="http://hk.uwenku.com/question/p-nonyplqr-bdz.html" target="_blank" title="Python - 從複雜對象的有序列表中刪除重複項?"> Python - 從複雜對象的有序列表中刪除重複項? </a> </li> <li class="side_article_list_item"> 3. <a href="http://hk.uwenku.com/question/p-fwtmzlxr-bdt.html" target="_blank" title="python中的Xpath無法獲取數據"> python中的Xpath無法獲取數據 </a> </li> <li class="side_article_list_item"> 4. <a href="http://hk.uwenku.com/question/p-enzlmkpv-bep.html" target="_blank" title="檢查npm包是否通過終端安裝在package.json中"> 檢查npm包是否通過終端安裝在package.json中 </a> </li> <li class="side_article_list_item"> 5. <a href="http://hk.uwenku.com/question/p-hgkodxue-beg.html" target="_blank" title="更新現有資產 - Hyperledger作曲家"> 更新現有資產 - Hyperledger作曲家 </a> </li> <li class="side_article_list_item"> 6. <a href="http://hk.uwenku.com/question/p-aeekxncy-bgc.html" target="_blank" title="如何讓價值在2D或3D地圖在SCSS"> 如何讓價值在2D或3D地圖在SCSS </a> </li> <li class="side_article_list_item"> 7. <a href="http://hk.uwenku.com/question/p-nhomiyry-bev.html" target="_blank" title="在JSP中的foreach"> 在JSP中的foreach </a> </li> <li class="side_article_list_item"> 8. <a href="http://hk.uwenku.com/question/p-wbmoqksc-bgs.html" target="_blank" title="可以檢查一個集合或子集合是否存在?"> 可以檢查一個集合或子集合是否存在? </a> </li> <li class="side_article_list_item"> 9. <a href="http://hk.uwenku.com/question/p-hzmoxnlc-bna.html" target="_blank" title="{reloadOnSearch:false}控制器在歷史記錄返回時不會重新加載"> {reloadOnSearch:false}控制器在歷史記錄返回時不會重新加載 </a> </li> <li class="side_article_list_item"> 10. <a href="http://hk.uwenku.com/question/p-ojrqfxds-bmt.html" target="_blank" title="使用SQL Server/C進行字母數字排序#"> 使用SQL Server/C進行字母數字排序# </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> 相關問題</h3> </div> <div class="article-relative-content"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://hk.uwenku.com/question/p-djfxslvs-bnn.html" target="_blank" title="SQL - 一個字符串選擇部分"> SQL - 一個字符串選擇部分 </a> </li> <li class="side_article_list_item"> 2. <a href="http://hk.uwenku.com/question/p-ypnbnadg-zc.html" target="_blank" title="選擇字符串的一部分時,發現一個字符"> 選擇字符串的一部分時,發現一個字符 </a> </li> <li class="side_article_list_item"> 3. <a href="http://hk.uwenku.com/question/p-epfdiwrc-sh.html" target="_blank" title="選擇一個字符串的一部分"> 選擇一個字符串的一部分 </a> </li> <li class="side_article_list_item"> 4. <a href="http://hk.uwenku.com/question/p-gdinqofd-sy.html" target="_blank" title="SQL選擇字符串的多個部分!"> SQL選擇字符串的多個部分! </a> </li> <li class="side_article_list_item"> 5. <a href="http://hk.uwenku.com/question/p-qsagkxty-mv.html" target="_blank" title="選擇部分字符串"> 選擇部分字符串 </a> </li> <li class="side_article_list_item"> 6. <a href="http://hk.uwenku.com/question/p-pwpkobfj-bkc.html" target="_blank" title="選擇部分字符串"> 選擇部分字符串 </a> </li> <li class="side_article_list_item"> 7. <a href="http://hk.uwenku.com/question/p-aftignev-ko.html" target="_blank" title="選擇兩個括號之間的字符串的一部分"> 選擇兩個括號之間的字符串的一部分 </a> </li> <li class="side_article_list_item"> 8. <a href="http://hk.uwenku.com/question/p-xthvrcgd-beg.html" target="_blank" title="C#選擇字符串的一部分時,有一個匹配結果字符串的一部分"> C#選擇字符串的一部分時,有一個匹配結果字符串的一部分 </a> </li> <li class="side_article_list_item"> 9. <a href="http://hk.uwenku.com/question/p-cafbwxqg-tp.html" target="_blank" title="選擇與部分字符串匹配的第一個完整字符串"> 選擇與部分字符串匹配的第一個完整字符串 </a> </li> <li class="side_article_list_item"> 10. <a href="http://hk.uwenku.com/question/p-hwsjafnh-bgr.html" target="_blank" title="在視圖中選擇多個到多個模型的導軌"> 在視圖中選擇多個到多個模型的導軌 </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://hk.uwenku.com/contact">聯系我們</a></li> <li>© 2020 HK.UWENKU.COM</li> <li><a target="_blank" href="https://beian.miit.gov.cn/">沪ICP备13005482号-4</a></li> <li><script type="text/javascript" src="https://v1.cnzz.com/z_stat.php?id=1280101193&web_id=1280101193"></script></li> <li><a href="http://www.uwenku.com/" target="_blank" title="优文库">简体中文</a></li> <li><a href="http://hk.uwenku.com/" target="_blank" title="優文庫">繁體中文</a></li> <li><a href="http://ru.uwenku.com/" target="_blank" title="поле вопросов и ответов">Русский</a></li> <li><a href="http://de.uwenku.com/" target="_blank" title="Frage - und - antwort - Park">Deutsch</a></li> <li><a href="http://es.uwenku.com/" target="_blank" title="Preguntas y respuestas">Español</a></li> <li><a href="http://hi.uwenku.com/" target="_blank" title="कार्यक्रम प्रश्न और उत्तर पार्क">हिन्दी</a></li> <li><a href="http://it.uwenku.com/" target="_blank" title="IL Programma di chiedere Park">Italiano</a></li> <li><a href="http://ja.uwenku.com/" target="_blank" title="プログラム問答園区">日本語</a></li> <li><a href="http://ko.uwenku.com/" target="_blank" title="프로그램 문답 단지">한국어</a></li> <li><a href="http://pl.uwenku.com/" target="_blank" title="program o park">Polski</a></li> <li><a href="http://tr.uwenku.com/" target="_blank" title="Program soru ve cevap parkı">Türkçe</a></li> <li><a href="http://vi.uwenku.com/" target="_blank" title="Đáp ứng viên">Tiếng Việt</a></li> <li><a href="http://fr.uwenku.com/" target="_blank" title="Programme interrogation Park">Française</a></li> </ul> </div> </div> </div> </div> </div> </footer> <!-- / footer --> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?f78a970f17b19a79fc477a3378096f29"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </body> </html>