Exchange 2010 Transport Rule Regex not working as expected

I'm trying to match a numeric header value to between 300 and 999.

The condition is "when the message header matches text patterns"

I'm using ^(3|4|5|6|7|8|9)\d\d$ based on https://technet.microsoft.com/en-us/library/aa997187%28v=exchg.141%29.aspx

It's working for 300-999, but it's also matching values like 85 and 215.  It seems to match any value with at least 2 digits.

Is my regex correct?  Does regex work correctly for header values?
s-wAsked:
Who is Participating?
 
Dan CraciunIT ConsultantCommented:
Doesn't look like Exchange supports ranges, so here is how I think it should work:
^3\d\d|4\d\d|5\d\d|6\d\d|7\d\d|8\d\d|9\d\d$

Try it with like this or with parenthesis:
^(3\d\d|4\d\d|5\d\d|6\d\d|7\d\d|8\d\d|9\d\d)$

HTH,
Dan
0
 
Mark BullockQA Engineer IIICommented:
You don't need the parentheses unless you are replacing the value.
Here is the simplest regex.
[3-9]\d\d

Open in new window


You can test it here.
http://regexr.com/3asi6
0
 
s-wAuthor Commented:
The [] and - syntax isn't shown as supported for the Transport Rules Regex.  See the Exchange link.  The regex I have works on test sites, it just doesn't work 100% of the time on Exchange.
0
 
s-wAuthor Commented:
^(3\d\d|4\d\d|5\d\d|6\d\d|7\d\d|8\d\d|9\d\d)$ works better.  It missed a single 945 over several days.

It's not a fix for what seems to be an Exchange bug, but a reasonable workaround.

Thanks.
0
 
Dan CraciunIT ConsultantCommented:
You're welcome.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.