我收到一条带有标头的消息,该标头指定了数据的长度。在我的示例中,我有一条 28 个字符的消息要处理。
我试图找到某种方法在同一个正则表达式中使用匹配的数字作为重复计数,就像这个不工作的例子:
s = "message 28\r\nthis is some random sentence"
matches = re.match(r"(?P<command>\S+)\s+(?P<bytes>\d+)\r\n(?P<data>.{(?P=bytes)})", s, re.DOTALL).groupdict()
我的理解是我的 (?P=bytes) 是与“字节”命名组匹配的相同字符串的匹配项,而不是允许我任意更改正则表达式,这就是它不起作用的原因,但是有什么方法可以实现我不想通过两个正则表达式传递我的字符串?