Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 匹配所有'^0xCD';在第一次出现'之前^0xDD';_Regex - Fatal编程技术网

Regex 匹配所有'^0xCD';在第一次出现'之前^0xDD';

Regex 匹配所有'^0xCD';在第一次出现'之前^0xDD';,regex,Regex,我需要执行多行搜索,以匹配一行开头的所有0xCD,直到第一次出现0xDD,也匹配一行开头的所有0xCD 我尝试使用此(?s)^0xCD(?=.^0xDD),但它只匹配所有^0xCD,即使是^0xDD之后的内容 我正在使用启用正则表达式的Sublime Text 3编辑器 输入 作为输出,我希望ST3能够找到两个匹配的0xCD。第1行的一个和第3行的一个。真正的文件确实要大得多,当正则表达式匹配时,ST3的状态栏中显示的ocurence数量将节省我大量的计算时间。 0xAA 0xBB您可以使用基于

我需要执行多行搜索,以匹配一行开头的所有
0xCD
,直到第一次出现
0xDD
,也匹配一行开头的所有
0xCD

我尝试使用此
(?s)^0xCD(?=.^0xDD)
,但它只匹配所有
^0xCD
,即使是
^0xDD
之后的内容

我正在使用启用正则表达式的
Sublime Text 3
编辑器

输入

作为输出,我希望ST3能够找到两个匹配的
0xCD
。第
1行的一个和第
3行的一个。真正的文件确实要大得多,当正则表达式匹配时,ST3的状态栏中显示的ocurence数量将节省我大量的计算时间。

0xAA 0xBB

您可以使用基于
\G
的正则表达式:

(?s)\G(?:(?!0xDD).)*?\K0xCD
详细信息

  • (?s)
    -一个内联点阵式修饰符,也可以使
    匹配换行符
  • \G
    -在字符串开头匹配,然后在每次成功匹配后匹配的锚定
  • (?:(?!0xDD)。*?
    -匹配任何字符(不是
    0xDD
    字符序列的起始点)的标记,以惰性方式匹配,即首先跳过模式,然后首先尝试后续模式,仅当它们找不到匹配时,此标记才会“扩展”(如果删除
    令牌将无法正常工作)
  • \K
    -一个匹配重置操作符,在当前迭代过程中丢弃所有匹配的文本
  • 0xCD
    -要匹配并作为匹配项“返回”的子字符串

请提供一些您处理的输入文本。您只是在搜索,还是在尝试删除/替换这些字符串?请尝试
(?s)\G(?:(?!0xDD)。*?\K0xCD
(?s)\G(?:(?!0xDD).)*?\K0xCD