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