Linux - NewbieThis Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place!
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.
I want a regular expression matching anything after "."
For example i have three :
spam.asdfasdf2234s
spam.898HY^%
spam.%^^HHG^%$FVV
I want a regular expression which matches anything after spam.
I have one, let me know if its correct
Code:
/^spam.*/i
I will be using it for header __ X-Mailer in Spamssasin
I don't know much about spamassassin syntax, but generally in regex this will match any line starting with "spam" (the whole line) not just the bit after the spam.
that would work, but it's not nearly as good as it can be.
firstly the . there is a special character, meaning "a character", not a literal period. so that will match anything. and the * means match that last thing zero or more times. so "spam" itself would match it, as would "spamx123" neither of which fit your examples. if you do "^spam\..+" that will match strings when there is *one* character or more after a real period mark.
/spam\.\(.*\)/
/ begin of regex
spam matched literally
\. one dot, as the special meaning of "." is escaped by "\"
\( starting a backreference; expression within ( ) can
later be referenced with \1 for the first pair of ()
\2 for the second and so on
.* "." means any character (each and every except 0x00
depending on implementaion)
* means zero or unlimited count of characters. use +* if
there must be at least one character
\) end of the first backreference group
/ end of regex
Some regex implementations use \( some just a ( to denote a backreference
have a look in spamassins man page
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.