2012-01-17 10 views
0

ハイフンの間にある任意の単語にマッチして1つの記事を残して、この正規表現をこれまでに(ハックして)ハッキングしました。これらの単語が別々に必要な理由は、Bloggerが39文字でURLを停止し、単語を壊さないことです。これは、これまでの作品:正規表現を使用してBlogger(blogspot)とマッチする

/wishing-you-a-very-merry-christmas-and-a-happy-new-year.html
マッチに対してテスト

^((([a-zA-Z0-9]{2,39})-)+)(?:([a-zA-Z0-9]{1})-)((([a-zA-Z0-9]{2,39})-)+){2,39}$

wishing-you-a-very-merry-christmas-and-
置換文字列:$1(動作していない!!)それは、その結果:

私は1-取得するにはどうすればよいです手紙の記事は結果の正規表現では印刷されませんか?そして、結果の中で最後の-をテストして削除するにはどうすればよいですか?

+0

私はあなたのパターンで混乱しています参照してください。また、何の問題

(?<=[/-]|^)[^-]-|-[^-](?=[-./]|$) 

ではありません。それにもかかわらず、私はパターンがスラッシュで始まる文字列と一致するとは思っていません。最初の文字として英数字の英数字と一致し、スラッシュとは一致しません。私はキャプチャグループのいくつかを削除するためのアドバイスもしています(私は7を数えました)。 – Kobi

+1

不連続なテキストをどのように一致させるかを尋ねる場合は、できません。スラッグ全体を抽出し、空の文字列で除外する単語を置き換えます。 – tripleee

答えて

1

これを1つの正規表現で構築することはできません。

長さが最大39文字で、末尾が-でない部分は問題ありません。

^\/?([\w-]{3,39})(?<!-).* 

on Regexr

(?<!-)は、文字列がハイフンで終了されていないことを保証戻り読み表明である。それを参照してください。

しかし、あなたは、この独自の1.

の長さと同じ時間のサブストリングで削除することはできませんが、それはhere on Regexr

+0

ありがとうございます - それは完璧に一致し、 "... and"で止まるURLがありますが、他のURLでは正確に39文字で止まります - 最後の単語(ハイフンで定義)で止めるにはどうしたらいいですか? – DSWP

関連する問題