0

私の正規表現は良くありません、そして私はここで苦労しています。これらの2つの形式からタイトルを取得するには、正規表現が必要です。

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-]+)

2つの部分をキャプチャします。

  1. ベースURL、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 に答える