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

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?
Who is Participating?
Dan CraciunIT ConsultantCommented:
Doesn't look like Exchange supports ranges, so here is how I think it should work:

Try it with like this or with parenthesis:

Mark BullockQA Engineer IIICommented:
You don't need the parentheses unless you are replacing the value.
Here is the simplest regex.

Open in new window

You can test it here.
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.
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.

Dan CraciunIT ConsultantCommented:
You're welcome.
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.