gpt4 book ai didi

python - 在单个 python 正则表达式中使用匹配的数字作为重复计数

转载 作者:太空宇宙 更新时间:2023-11-04 09:13:46 25 4
gpt4 key购买 nike

我收到一条消息,消息头指定了数据的长度。在我的示例中,我有一条 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) 是与“bytes”命名组匹配的相同字符串的匹配项,而不是允许我任意更改正则表达式,这就是它不起作用的原因,但是有什么办法吗在不通过两个正则表达式传递我的字符串的情况下实现我想要的?

最佳答案

不可能编写一个可以匹配长度的正则表达式,然后将该长度用作量词中的反向引用。

可以使用正则表达式求出长度,然后使用普通的字符串切片操作从字符串中提取出合适的字符。

关于python - 在单个 python 正则表达式中使用匹配的数字作为重复计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11819873/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com