MCPcopy
hub / github.com/nonebot/nonebot2 / RegexRule

Class RegexRule

nonebot/rule.py:657–693  ·  view source on GitHub ↗

检查消息字符串是否符合指定正则表达式。 参数: regex: 正则表达式 flags: 正则表达式标记

Source from the content-addressed store, hash-verified

655
656
657class RegexRule:
658 """检查消息字符串是否符合指定正则表达式。
659
660 参数:
661 regex: 正则表达式
662 flags: 正则表达式标记
663 """
664
665 __slots__ = ("flags", "regex")
666
667 def __init__(self, regex: str, flags: int = 0):
668 self.regex = regex
669 self.flags = flags
670
671 def __repr__(self) -> str:
672 return f"Regex(regex={self.regex!r}, flags={self.flags})"
673
674 def __eq__(self, other: object) -> bool:
675 return (
676 isinstance(other, RegexRule)
677 and self.regex == other.regex
678 and self.flags == other.flags
679 )
680
681 def __hash__(self) -> int:
682 return hash((self.regex, self.flags))
683
684 async def __call__(self, event: Event, state: T_State) -> bool:
685 try:
686 msg = event.get_message()
687 except Exception:
688 return False
689 if matched := re.search(self.regex, str(msg), self.flags):
690 state[REGEX_MATCHED] = matched
691 return True
692 else:
693 return False
694
695
696def regex(regex: str, flags: int | re.RegexFlag = 0) -> Rule:

Callers 1

regexFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected