2014-03-27 48 views
0

可能有人提出一個正則表達式,將發現的修剪URL到一個簡單的#ID

http://example.com/dokuwiki/doku.php/folder:page?do=export_xhtml#id 

每一個實例,其中

  • 部分是,可變的,文件夾/在A段的正則表達式維基
  • 頁是在該文件夾/節的頁面
  • id表示div的HTML id屬性該頁

所以它只是讀取#id?最終的結果將

被取代一​​個完全合格的URL到網頁上的內部鏈接
<a href="http://example.com/dokuwiki/doku.php/folder:page?do=export_xhtml#id" > 

只是

<a href="#id" > 

上下文這裏修改從維基,DokuWiki的導出的內容,使它適合通過CDN分發。進入您通過export_xhtml獲取的導出標記的絕對鏈接不是必需的,對於CDN來說也沒有好處,因爲只要用戶觸及這樣的鏈接,他/她最終將訪問完整的wiki。

+0

你是什麼意思'section is a,var可用,Wiki中的文件夾/部分?這是指什麼URL的哪一部分? – Severin

+0

然後你不需要regex。你需要一個子串。從#到結束。 http://en.wikipedia.org/wiki/URI_scheme – matcheek

+0

我提到了變量來說明文件夾&頁面位不是靜態文本。它們會因鏈接到鏈接而有所不同,因此某種形式的通配符搜索停止在?然後在#被調用之後拿起id。超越我的正則表達式技能,我很抱歉地說。 – DroidOS

回答

0

這應該滿足你的需要:

/http:\/\/example.com\/([^\/]+\/[^\/]+)\/([^\?]+)[^#]+#(\d+)/ 

我假設該ID是一個數字。

從你的例子網址將匹配:

  1. 的DokuWiki/doku.php
  2. 文件夾:頁
  3. 56(ID)

只得到了ID它會最容易做到的:

/#\d+$/ 
+0

完美!謝謝 – DroidOS