簡體   English   中英

JavaScript中的RegEx:兩個標簽之間的內容

[英]RegEx in JavaScript: Content Between Two Tags

我需要提取兩個XML標記之間的內容(不包括標記)。

PS:我將不會僅用它來解析XML。 我將在JavaScript中使用RegEx,因此后面的外觀將無法正常工作。

我究竟做錯了什么?

XML:

<location maps="">
    RewriteMap map txt:map.txt
    RewriteMap lower int:tolower
    RewriteCond %{REQUEST_URI} ^/([^/.]+)\.html$ [NC]
    RewriteCond ${map:${lower:%1}|NOT_FOUND} !NOT_FOUND
    RewriteRule .? /index.php?q=${map:${lower:%1}} [NC,L]
</location>

正則表達式:

/(?:(?=(\<(?!\/)(.*?)\>)))([\s\S]*?)(?=(\<(?=\/)(.*?)\>))/igm

結果:

<location maps="">
    RewriteMap map txt:map.txt
    RewriteMap lower int:tolower
    RewriteCond %{REQUEST_URI} ^/([^/.]+)\.html$ [NC]
    RewriteCond ${map:${lower:%1}|NOT_FOUND} !NOT_FOUND
    RewriteRule .? /index.php?q=${map:${lower:%1}} [NC,L]

我想要的是

RewriteMap map txt:map.txt
RewriteMap lower int:tolower
RewriteCond %{REQUEST_URI} ^/([^/.]+)\.html$ [NC]
RewriteCond ${map:${lower:%1}|NOT_FOUND} !NOT_FOUND
RewriteRule .? /index.php?q=${map:${lower:%1}} [NC,L]

您還可以使用以下正則表達式:(如果標記名稱為常數)

<location[^>]*>([^<]+)</location>

怎么樣

<(\w+)[^>]+>\n*([\s\S]*)<\/\1>

它將抓取您的標簽,捕獲所有重復到以/開頭的標簽。

進入捕獲組2。

在regex101處檢查

暫無
暫無

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

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