Performance considerations when using regular expressions

You should take care when specifying regular expressions: some forms of regular expression can involve a large amount of work to find the best match, adversely impacting performance. Other expressions might produce a result that you did not expect.

For example, to match text up to and including a delimiter character ';' do not use the pattern ".*;" because this matches up to the last ';' character in the message, including any prior ';' characters in the matched text. Instead, you should use the pattern "[^;]*;".

Similarly, avoid using the pattern ".*" because this will always force a search to the end of the message to try and find the best match, and this might result in poor performance. However, you should use the pattern ".*" if you intend to match all remaining data in a message.

For best performance, avoid expressions with redundant nested repeats, such as "([0-9]+)*". Try to keep the expressions simple, with precise matching criteria. This avoids the need to perform multiple searches for the best match.

Related concepts
Message modeling
The message model
TDS format: Relationship to the logical model
Related tasks
Developing message models
Working with a message definition file
Working with message model objects
Related reference
Message model reference information
Message model object properties
Additional MRM domain information
Additional TDS information