使用正则表达式时的性能注意事项

当指定正则表达式时应该小心:正则表达式的一些格式可能涉及查找最佳匹配的大量工作,反过来影响性能。其他表达式可能会产生不期望的结果。

例如,要将文本至多与定界符字符‘;’匹配并包括它,不要使用模型“.*;”,因为这至多与消息中的最后一个‘;’字符(包括所匹配文本中任何以前的‘;’字符)匹配。而应该使用模型“[^;]*;”。

同样地,避免使用模型“.*”,因为总是会强制搜索消息的结束处以尝试并查找最佳匹配,并且这可能导致较差的性能。然而,如果打算与消息中的所有剩余数据匹配,应该使用模型“.*”。

要获得最佳性能,避免具有冗余嵌套重复的表达式,如“([0-9]+)*”。尝试用精确匹配条件使表达式保持简单。这就避免需要执行对最佳匹配的多次搜索。

相关概念
消息建模
消息模型
TDS 格式:与逻辑模型的关系
相关任务
开发消息模型
使用消息定义文件
使用消息模型对象
相关参考
消息模型引用信息
消息模型对象属性
附加的 MRM 域信息
附加的 TDS 信息
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
ad09910_