0

我的正则表达式不是很好,我在这里挣扎。我需要正则表达式从这两种格式中获取标题:

http://domain.com/blog/title
http://secure.com/domainkey/blog/title

但不匹配任何来自(其中子文件夹可能是多个):

http://domain.com/images/blog/imagename
http://domain.com/images/subfolders/blog/imagename
http://secure.com/domain/images/blog/imagename
http://secure.com/domain/images/subfolders/blog/imagename

有任何想法吗?谢谢。

4

1 回答 1

1
(http:\/\/(?:(?:secure.com\/domainkey)|(?:domain.com))\/blog\/)([\w-]+)

捕获两部分:

  1. 基本网址,http://domain.com/blog/http://secure.com/domainkey/blog/
  2. 标题

用js演示:

var regex = /(http:\/\/(?:(?:secure.com\/domainkey)|(?:domain.com))\/blog\/)([\w-]+)/ig;

regex.exec('http://domain.com/blog/blog-title');
// results: ["http://domain.com/blog/blog-title", "http://domain.com/blog/", "blog-title"]

regex.exec('http://secure.com/domainkey/blog/blog-title')
// results: ["http://secure.com/domainkey/blog/blog-title", "http://secure.com/domainkey/blog/", "blog-title"]

假设博客标题仅包含 [a-zA-Z_-],如果您要捕获更多字符,请修改正则表达式的最后一部分。

于 2013-02-06T06:28:26.080 回答