gpt4 book ai didi

正则表达式查询查找行长度不同的所有 2 个字符组

转载 作者:行者123 更新时间:2023-12-01 22:50:46 25 4
gpt4 key购买 nike

我有一个文档,其中包含 2 组字符行。我想使用正则表达式来查找每个组,但是字符行的长度不同。

88 00 02 00 E9 07 58 0F 08 8F 
88 00 02 00 E9 07 58 0F
89 08 02 00 E9 07 58 0F 05

我目前的正则表达式如下所示:

\s(\w+)\s(\w+)\s(\w+)\s(\w+)\s(\w+)\s(\w+)\s(\w+)\s?(\w+)\s?(\w+)\s?(\w+)$

我遇到的问题是对于较短的行,它将最后几组拆分为单字符组而不是双字符组。例如它给了我:

'88' '00' '02' '00' 'E9' '07' '5' '8' '0' 'F'

当我需要时:

'88' '00' '02' '00' 'E9' '07' '58' '0F' '' ''

非常感谢任何有关如何实现这一目标的帮助。

最佳答案

(\w+)\s?(\w+)\s?(\w+)\s?(\w+)$ 部分匹配较小的行时,回溯机制会强制正则表达式引擎查找匹配变体,并且由于 \s? 不必匹配任何字符,并且 \w+ 可以匹配 1 个字符,因此结果包含单个字符捕获。

您需要将所有 \s?(\w+) 替换为 (?:\s+(\w+))?(?:\s+ (\w{2}))? 确保空格匹配 1 次或多次,\w{2} 可以确保它始终匹配并捕获 2 个单词字符。

关于正则表达式查询查找行长度不同的所有 2 个字符组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59395670/

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