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}结合 d/eS42{0 asc42 neg -M} b/Is2015?{version cvi 2015 ge}bind d/AllocGlyphStorage{Is2015?{!}{{string} forall}?}绑定d/Type42DictBegin{25 dictRegex 要在内容之间查找的正则表达式,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}结合
/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\]%%\) =)