2014-03-27 28 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