Solved

REGEX Help for Twitter

Posted on 2014-03-18
6
485 Views
Last Modified: 2014-03-18
Hello guys,

Can you help me with the REGEX for the following?

I want to extract the "username" out of any of the following strings. The main differences are http[s], trailing slash, the inclusion of #!, and a variant that includes some other stuff in the url.

Thank you!

http://twitter.com/username/ 
http://twitter.com/username 

https://twitter.com/username/ 
https://twitter.com/username 

http://twitter.com/#!/username/
https://twitter.com/#!/username/

http://twitter.com/intent/user?screen_name=username
https://twitter.com/intent/user?screen_name=username
0
Comment
Question by:EffinGood
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
6 Comments
 
LVL 84

Expert Comment

by:ozo
ID: 39938616
.*\b(\w+)
0
 
LVL 27

Expert Comment

by:yodercm
ID: 39938646
If you are using php, there is an easier way (assuming that you are showing all possible formats).

Just explode() the string on "/", take the 4th part.  It will be either the username or "intent" or "#!".  In the second case, explode again on "=" and the last part will be the username.  In the third case, take the original 5th part.

The php explode() function is awesome.
0
 

Author Comment

by:EffinGood
ID: 39938648
Well, the problem is that the strings are located in a big file full of other chars, so I need to examine the entire file to pull these out.

There will be other urls in there - I'm just looking for those with the 'twitter' part.
0
SharePoint Admin?

Enable Your Employees To Focus On The Core With Intuitive Onscreen Guidance That is With You At The Moment of Need.

 
LVL 35

Accepted Solution

by:
gr8gonzo earned 500 total points
ID: 39938657
I highly recommend installing the free tool "The Regex Coach" - I've been using it for years.

That said, try this on:
<?php

$urls = array(
"http://twitter.com/username/",
"http://twitter.com/username",
"https://twitter.com/username/",
"https://twitter.com/username",
"http://twitter.com/#!/username/",
"https://twitter.com/#!/username/",
"http://twitter.com/intent/user?screen_name=username",
"https://twitter.com/intent/user?screen_name=username");

foreach($urls as $url)
{
  echo "URL: {$url}\n";
  preg_match("@https?://twitter.com/(?:#!/|intent/user\?screen_name=)?(\w+)@",$url,$matches);
  echo "Username: " . $matches[1] . "\n";
}
?>

Open in new window


You should get this result:
URL: http://twitter.com/username/
Username: username
URL: http://twitter.com/username
Username: username
URL: https://twitter.com/username/
Username: username
URL: https://twitter.com/username
Username: username
URL: http://twitter.com/#!/username/
Username: username
URL: https://twitter.com/#!/username/
Username: username
URL: http://twitter.com/intent/user?screen_name=username
Username: username
URL: https://twitter.com/intent/user?screen_name=username
Username: username

Open in new window

0
 

Author Closing Comment

by:EffinGood
ID: 39938669
Nice! Thank you! I remember that nifty piece of software now - it's been eons! Thank you very much Gonzo!
0
 
LVL 35

Expert Comment

by:Terry Woods
ID: 39938670
Very similar to @gr8gonzo's, though I wrote it independently:
preg_match_all("@https?://twitter.com/(?:#!/)?(?:.*\?screen_name=)?((?!intent)\w+)@i", $data, $matches);
print_r($matches[1]);

Open in new window

0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

These days socially coordinated efforts have turned into a critical requirement for enterprises.
This article discusses how to implement server side field validation and display customized error messages to the client.
The viewer will learn how to look for a specific file type in a local or remote server directory using PHP.
This tutorial will teach you the core code needed to finalize the addition of a watermark to your image. The viewer will use a small PHP class to learn and create a watermark.

733 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question