簡體   English   中英

嵌套標記中父項匹配值的正則表達式

[英]Regex for parent matched values in nested tags

我已經使用JavaScript在Node.js中工作。

我想使用正則表達式獲取父div字符串。

例如:

<div class="first">
   <p> sample 1</p>
   <div class="second">
        <p>sample 2</p>
    </div>
 </div>

如何用“ first”類的div正則表達式? 但是在第一分區內,第二分區內也有。

我正在嘗試以下正則表達式

 <div class="first">([\s\S]*?)<\/div>

我遇到了錯誤的比賽,從第一個div開始,到第二個div關閉結束。

找到父div值的任何想法。

提前致謝。

更新:同意。 DOM應該解決我的問題。 但是我的html格式不正確,無法修改。 如果我使用DOM閱讀文檔,則會出錯。 任何其他替代方法。

您正在尋找的是遞歸。 Javascript的正則表達式實現不支持遞歸。 實際上是做支持遞歸唯一正則表達式是Perl的5.10和Ruby 2.0 [ 來源 ]

這對您來說意味着您需要執行以下一項操作:

  1. 需要格式正確的XML輸入,以便DOM不會崩潰(或修復XML的修改,以便它輸出有效的XML)
  2. 通過計算“ div”的數量和隨后的“ / div”的數量來手工解析(這將是一場噩夢)
  3. 使用Perl 5.10+或Ruby 2.0+解析文件並將結果傳遞給Javascript程序

很明顯,選項1是唯一合理的選項。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM