Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.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 要在内容之间查找的正则表达式_Regex - Fatal编程技术网

Regex 要在内容之间查找的正则表达式

Regex 要在内容之间查找的正则表达式,regex,Regex,我正在尝试使用正则表达式查找%%EndPageSetup和LH(%%[页面:1]]%)之间的内容=。我尝试了各种模式,但没有得到正确的输出。有人能帮我吗 %尾页设置 /DeviceGray dup设置颜色空间 /colspABC exch defè…scol …虚拟机?Pscript_WinNT_Incr begin %%BeginResource:文件Pscript_T42Hdr 5.0 0/asc42 0.0 d/sF42{/asc42~d Ji}结合d/bS42{0 asc42-M}结合

我正在尝试使用正则表达式查找%%EndPageSetupLH(%%[页面:1]]%)之间的内容=。我尝试了各种模式,但没有得到正确的输出。有人能帮我吗

%尾页设置

/DeviceGray dup设置颜色空间 /colspABC exch defè…scol …虚拟机?Pscript_WinNT_Incr begin %%BeginResource:文件Pscript_T42Hdr 5.0 0/asc42 0.0 d/sF42{/asc42~d Ji}结合d/bS42{0 asc42-M}结合 d/eS42{0 asc42 neg -M} b/Is2015?{version cvi 2015 ge}bind d/AllocGlyphStorage{Is2015?{!}{{string} forall}?}绑定d/Type42DictBegin{25 dict
/FontName~d/编码~d 4
阵列astore cvx/FontBBox~
d/PaintType 0 d/FontType 42
d/FontMatrix[1 0 1 0]d
/字符串256 dict
/.notdef 0 d& E d/sfnts}bind d d/Type42DictEnd{&@ /FontName获取~definefont!E}bind d/RDS{string currentfile~readstring 执行 d/PrepFor2015{Is2015?{/2015目录 16在2级时,指令d sfnts 0获取^ (glyx)putinterval 2^(locx)putinterval !!}{!!}?}绑定d/AddT42Char{Is2015? {findfont/glyph目录get`d E! !}{findfont/sfnts获取4^获取3^2^

左侧(%[页码:1]%)=

谢谢。

这可能有用

/EndPageSetup(.*?)LH\((?:.*?)\[Page: 1\](?:.*?)\) =/

这适用于您的示例

%%EndPageSetup(.*?)\(%%\[.*?Page.*?\]%%\) =
看到这里了吗

确保激活
s
(dotall)修饰符,以便可以将换行符与
匹配

然后,您的结果将进入捕获组1

如何激活修改器以及如何获得结果取决于您的语言。

这应该可以:

解释
  • 第三个捕获组
    (?=LH\(%\[页面:1\]%\)=)
    使用正向前瞻,因此您可以匹配该组,而无需将其包含在结果中

  • 第二个捕获组
    (.*\n)
    匹配所有字符,包括换行符。使用
    *
    ,您可以匹配前面的0个或多个标记/组

  • 第一个非捕获组匹配
    (?:%%EndPageSetup)
    ,并将其从结果中忽略


您也可以使用lookbehinds,但JavaScript不支持它们。

您可以提供一些输入和输出示例吗?…您尝试的“各种模式”有哪些不起作用?为什么选择“close()”投票。这似乎是一个有一些精确答案的有效问题?除了没有“Page:1”之外在提供的示例文本中,因此任何正确的正则表达式在此文本上都将返回null。可能是打字错误吗?感谢James指出这一点。已编辑。
(?:%%EndPageSetup)(.*\n)*(?=LH\(%%\[Page: 1\]%%\) =)