ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
If I have a line of text with only 2 fields that I want to extract, how can I essentially ignore what is between the 2 fields, and only extract what I want?
All i want to extract is "Version: 150" and "Thread: www.google.com". I've been trying to find a way to do it with re.findall (and would prefer to do it that way if possible) but havent been able to get it working.
Edit: I should mention that 150 and 20 are variable in this case in case that wasn't obvious...
Any help is appreciated.
Thanks!
Last edited by mwwynne; 12-10-2012 at 10:55 PM.
Reason: Correct input line
Sorry, I forgot to add the fact that there is text in front of the first field I want to extract. I edited the original post to show what the line should look like.
I'm sure you can find lots of regex-related tutorials online. Creating of a particular regular expression often requires some trial and error, so I use little sed one-liners, for example
Code:
$ echo 'field1: ignore, Version: 150, field1: ignore, field 2, ignore, Thread: www.google.com' | sed -r 's/(Version|Thread): [^ ,]*/[&]/g'
field1: ignore, [Version: 150], field1: ignore, field 2, ignore, [Thread: www.google.com]
or use ipython, if I need a python solution. This way I can try different ideas and approaches very quickly. Also it is very instructive to read manual and info pages which are probably already installed on your system: man sed, info sed, man awk, info gawk, man grep, man perlre, man perlretut (from perl-doc package on Ubuntu) etc. Of course they are all about different languages, but regular expressions are almost the same.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.