查找所有正则表达式匹配的字符串

Yu Taylor

我有一个如下所示的组合命令字符串,每个命令长度都不固定,最小为22,最大为240:

5B01CA0F00000241FF0201040F325D5B01CA0F00000241FF0201040F335D6B01FF0000000010FF01FF0000000F6D5B01CA0F00000241FF0201040F345D5B01CA0F00000241FF0201040F355D6B01FF0000000010FF01FF0000000F6D

我想提取5B .... 5D或6B .... 6D之类的命令,因此预期结果是:

5B01CA0F00000241FF0201040F325D

5B01CA0F00000241FF0201040F335D

6B01FF0000000010FF01FF0000000F6D

5B01CA0F00000241FF0201040F345D

5B01CA0F00000241FF0201040F355D

6B01FF0000000010FF01FF0000000F6D

我使用了正则表达式模式

5B[0-9a-fA-F]{22,240}5D 要么 (?<=5B)([0-9a-fA-F]{22,240})(?=5D)

只有一个匹配,有人可以帮我吗?

string regexPattern = "(?<=5B)([0-9a-fA-F]{22,240})(?=5D)";
string command = txtRegexCmd.Text.Trim();
MatchCollection matchedResults = Regex.Matches(command, regexPattern, RegexOptions.IgnoreCase);
string matchedCmd = string.Empty;
foreach (Match matchResult in matchedResults)
{
    matchedCmd += matchResult.Value + ",\r\n";
}
MessageBox.Show(matchedCmd);
维克多·史翠比维

您可以使用来匹配它们

([65])B.*?\1D

请参见.NET regex演示和Regulex图:

在此处输入图片说明

([65])B.*?\1D模式将捕获到组1中的a56数字,然后进行匹配,然后匹配B除换行符以外的任何0+字符,直到第一次出现与组1中捕获的相同字符之后,再进行匹配D

C#代码:

var results = Regex.Matches(s, @"([65])B.*?\1D")
            .Cast<Match>()
            .Select(x => x.Value)
            .ToList();

在此处输入图片说明

如果要在每个5D之后拆分6D,请使用

var results = Regex.Split(s, @"(?!$)(?<=[56]D)");

在此,(?!$)(?<=[56]D)匹配的位置不是字符串结尾,必须紧跟在5D之前6D请参阅此正则表达式演示

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

查找与正则表达式golang匹配的所有字符串

如何编写正则表达式以查找XCode项目中的所有字符串

使用正则表达式查找字符串中的所有匹配项

正则表达式匹配除字符串以外的所有字符串

字符串中的所有字符必须与正则表达式匹配

使用正则表达式查找并替换字符串中模式的所有实例

正则表达式-查找具有特定字符串的所有注释

正则表达式:查找文本中的所有子字符串

从C#中的正则表达式返回所有匹配的字符串集合

正则表达式匹配所有有效doctype标签的字符串

正则表达式查找某些模式之间的所有字符串

Vim查找并替换所有出现的正则表达式字符串

REGEX合并正则表达式字符串,然后查找除匹配项外的所有内容

使用Javascript以任意顺序使用正则表达式查找字符串中的所有匹配项

查找所有字符串的正则表达式是在Java中以$开头的正则表达式

用正则表达式查找字符串中的所有字母

正则表达式以所有顺序查找字符串

使用正则表达式查找两个字符串之间的所有匹配项

正则表达式以搜索几乎匹配除|之外的所有内容的字符串

Python-正则表达式查找字符串中的所有匹配项并替换

需要正则表达式来查找特定模式的所有子字符串

正则表达式查找带引号的字符串中的所有大括号

正则表达式:查找特定字符串后的所有数字

正则表达式-查找所有不匹配模式的字符串

正则表达式匹配 2 个字符之间的所有字符串

使用正则表达式查找字符串中的所有匹配项

Python查找所有正则表达式字符串值

使用正则表达式在字符串中查找所有出现的日期

正则表达式在长字符串中查找所有与金钱相关的值