LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Newbie (https://www.linuxquestions.org/questions/linux-newbie-8/)
-   -   regular expression for example.* (https://www.linuxquestions.org/questions/linux-newbie-8/regular-expression-for-example-%2A-929951/)

prayag_pjs 02-17-2012 03:49 PM

regular expression for example.*
 
Hi,

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

sycamorex 02-17-2012 04:00 PM

Quote:

Originally Posted by prayag_pjs (Post 4605378)
Hi,

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.

acid_kewpie 02-17-2012 04:00 PM

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.

uhelp 02-17-2012 04:40 PM

Code:

/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


All times are GMT -5. The time now is 02:02 AM.