diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMessageRouterRule.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMessageRouterRule.java index 79a4ff1a5..abac350a7 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMessageRouterRule.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMessageRouterRule.java @@ -25,6 +25,8 @@ public class WxMpMessageRouterRule { private String event; + private String eventRegex; + private String eventKey; private String eventKeyRegex; @@ -105,6 +107,18 @@ public class WxMpMessageRouterRule { return this; } + + /** + * event匹配该正则表达式 + * 比如"^weapp_audit_.*"用以匹配所有审核类类事件 + * + * @param regex the regex + * @return the wx mp message router rule + */ + public WxMpMessageRouterRule eventRegex(String regex) { + this.eventRegex = regex; + return this; + } /** * 如果content等于某值 * @@ -236,6 +250,8 @@ public class WxMpMessageRouterRule { && (this.event == null || this.event.equalsIgnoreCase(wxMessage.getEvent())) && + (this.eventRegex == null || Pattern.matches(this.eventRegex, StringUtils.trimToEmpty(wxMessage.getEvent()))) + && (this.eventKey == null || this.eventKey.equalsIgnoreCase(wxMessage.getEventKey())) && (this.eventKeyRegex == null || Pattern.matches(this.eventKeyRegex, StringUtils.trimToEmpty(wxMessage.getEventKey())))