- ANGELLIST_URL_REGEX =
{
company: %r{(?:https?:)?//angel\.co/company/(?<company>[A-Za-z0-9_-]+)(?:/(?<company_subpage>[A-Za-z0-9-]+))?},
job: %r{
(?:https?:)?//angel\.co/company/(?<company>[A-Za-z0-9_-]+)
/jobs/(?<job_permalink>(?<job_id>[0-9]+)-(?<job_slug>[A-Za-z0-9-]+))
}x,
user: %r{(?:https?:)?//angel\.co/(?<type>u|p)/(?<user>[A-Za-z0-9_-]+)}
}.freeze
- CRUNCHBASE_URL_REGEX =
{
company: %r{(?:https?:)?//crunchbase\.com/organization/(?<organization>[A-Za-z0-9_-]+)},
person: %r{(?:https?:)?//crunchbase\.com/person/(?<person>[A-Za-z0-9_-]+)}
}.freeze
- EMAIL_URL_REGEX =
{
email: /(?:mailto:)?(?<email>[A-Za-z0-9_.+-]+@[A-Za-z0-9_.-]+\.[A-Za-z]+)/,
email_without_extract: /\A[\w+\-.]+@[a-z\d-]+(\.[a-z\d-]+)*\.[a-z]+\z/i
}.freeze
- FACEBOOK_URL_REGEX =
{
username: %r{
(?:https?:)?//(?:www\.)?(?:facebook|fb)\.com/(?<profile>(?![A-Za-z]+\.php)
(?!marketplace|gaming|watch|me|messages|help|search|groups)[A-Za-z0-9_\-.]+)/?
}x,
profile_id: %r{(?:https?:)?//(?:www\.)?facebook\.com/(?:profile\.php\?id=)?(?<id>[0-9]+)}
}.freeze
- GITHUB_URL_REGEX =
{
repo: %r{(?:https?:)?//(?:www\.)?github\.com/(?<login>[A-Za-z0-9_-]+)/(?<repo>[A-Za-z0-9_-]+)/?},
user: %r{(?:https?:)?//(?:www\.)?github\.com/(?<login>[A-Za-z0-9_-]+)/?}
}.freeze
- HACKERNEWS_URL_REGEX =
{
item: %r{(?:https?:)?//news\.ycombinator\.com/item\?id=(?<item>[0-9]+)},
user: %r{(?:https?:)?//news\.ycombinator\.com/user\?id=(?<user>[A-Za-z0-9_-]+)}
}.freeze
- INSTAGRAM_URL_REGEX =
{
profile: %r{(?:https?:)?//(?:www\.)?(?:instagram\.com|instagr\.am)/
(?<username>[A-Za-z0-9_](?:(?:[A-Za-z0-9_]|(?:\.(?!\.))){0,28}(?:[A-Za-z0-9_]))?)}x
}.freeze
- LINKEDIN_URL_REGEX =
{
company: %r{(?:https?:)?//(?:\w+\.)?linkedin\.com/(?<company_type>
(?:company|school))/(?<company_permalink>[A-Za-z0-9\-À-ÿ.]+)/?}x,
post: %r{(?:https?:)?//(?:\w+\.)?linkedin\.com/feed/update/urn:li:activity:(?<activity_id>[0-9]+)/?},
profile: %r{(?:https?:)?//(?:\w+\.)?linkedin\.com/in/(?<permalink>[\w\-_À-ÿ%]+)/?}
}.freeze
- MEDIUM_URL_REGEX =
{
post: %r{(?:https?:)?//medium\.com/(?:(?:@(?<username>[A-Za-z0-9]+))|(?<publication>[a-z-]+))/
(?<slug>[a-z0-9-]+)-(?<post_id>[A-Za-z0-9]+)(?:\?.*)?}x,
post_of_subdomain_publication: %r{(?:https?:)?//(?<publication>(?!www)[a-z-]+)\.medium\.com/
(?<slug>[a-z0-9-]+)-(?<post_id>[A-Za-z0-9]+)(?:\?.*)?}x,
user: %r{(?:https?:)?//medium\.com/@(?<username>[A-Za-z0-9]+)(?:\?.*)?},
user_by_id: %r{(?:https?:)?//medium\.com/u/(?<user_id>[A-Za-z0-9]+)(?:\?.*)}
}.freeze
- PHONE_URL_REGEX =
{
number: /(?:tel|phone|mobile):(?<number>\+?[0-9. -]+)/
}.freeze
- REDDIT_URL_REGEX =
{
user: %r{(?:https?:)?//(?:[a-z]+\.)?reddit\.com/(?:u(?:ser)?)/(?<username>[A-Za-z0-9\-_]*)/?}
}.freeze
- SKYPE_URL_REGEX =
{
profile: /(?:(?:callto|skype):)(?<username>[a-z][a-z0-9.,\-_]{5,31})(?:\?(?:add|call|chat|sendfile|userinfo))?/
}.freeze
- SNAPCHAT_URL_REGEX =
{
profile: %r{(?:https?:)?//(?:www\.)?snapchat\.com/add/(?<username>[A-Za-z0-9._-]+)/?}
}.freeze
- STACKEXCHANGE_URL_REGEX =
{
user: %r{(?:https?:)?//(?:www\.)?stackexchange\.com/users/(?<id>[0-9]+)/(?<username>[A-Za-z0-9\-_.]+)/?}
}.freeze
- STACKEXCHANGE_NETWORK_URL_REGEX =
{
user: %r{(?:https?:)?//(?:(?<community>[a-z]+(?!www))\.)?stackexchange\.com/users/
(?<id>[0-9]+)/(?<username>[A-Za-z0-9\-_.]+)/?}x
}.freeze
- STACKOVERFLOW_URL_REGEX =
{
question: %r{(?:https?:)?//(?:www\.)?stackoverflow\.com/questions/(?<id>[0-9]+)/(?<title>[A-Za-z0-9\-_.]+)/?},
user: %r{(?:https?:)?//(?:www\.)?stackoverflow\.com/users/(?<id>[0-9]+)/(?<username>[A-Za-z0-9\-_.]+)/?}
}.freeze
- TELEGRAM_URL_REGEX =
{
profile: %r{(?:https?:)?//(?:t(?:elegram)?\.me|telegram\.org)/(?<username>[a-z0-9_]{5,32})/?}
}.freeze
{
status: %r{(?:https?:)?//(?:[A-Za-z]+\.)?twitter\.com/@?(?<username>[A-Za-z0-9_]+)/status/(?<tweet_id>[0-9]+)/?},
user: %r{(?:https?:)?//(?:[A-Za-z]+\.)?twitter\.com/@?(?!home|share|privacy|tos)(?<username>[A-Za-z0-9_]+)/?}
}.freeze
- VIMEO_URL_REGEX =
{
user: %r{(?:https?:)?//vimeo\.com/user(?<id>[0-9]+)},
video: %r{(?:https?:)?//(?:(?:www\.)?vimeo\.com|player\.vimeo\.com/video)/(?<id>[0-9]+)}
}.freeze
- XING_URL_REGEX =
{
profile: %r{(?:https?:)?//(?:www\.)?xing\.com/profile/(?<slug>[A-z0-9\-_]+)}
}.freeze
- YOUTUBE_URL_REGEX =
{
channel: %r{(?:https?:)?//(?:[A-z]+\.)?youtube\.com/channel/(?<id>[A-z0-9\-_]+)},
user: %r{(?:https?:)?//(?:[A-z]+\.)?youtube\.com/user/(?<username>[A-z0-9]+)},
video: %r{(?:https?:)?//(?:(?:www\.)?youtube\.com/(?:watch\?v=|embed/)|youtu\.be/)(?<id>[A-z0-9\-_]+)}
}.freeze
- WHATSAPP_URL_REGEX =
{
phone: %r{(?:https?:)?//(?:wa\.me/)(?<number>\+?[0-9. -]+)}
}.freeze
- YELP_URL_REGEX =
{
company: %r{(?:https?://)?(?:www\.)?yelp\.com/biz/(?<company>[A-Za-z0-9_-]+)}
}.freeze