正则表达式查询:如何在PDF中搜索该短语中的单词出现在多行中的短语?

时间:2010-05-07 14:10:09

标签: regex

我正在尝试为我工作的周刊设置一个索引页面。这是向读者展示的名称 在那几周提到的公司,以及它们出现的页码。

我想搜索本周的所有PDF文件,其中一个PDF =一个杂志页面(最初是在 Adobe InDesign CS3和Adobe InCopy CS3)。

我已经设置了一个我要搜索的公司列表,并使用PowerGREP并使用分隔常规 表达式,我能够找到提到公司的大多数页码。 然而,在哪里 公司名称包含两个或两个以上的单词,我正在运行的搜索不会拿起实例所在的地方 名称显示在多行上。

例如,在寻找“CB Richard Ellis”和“Cushman& Wakefield”时,我没有得到任何结果 文字看起来像这样:

DTZ击败BNP PRE,CB [此处突破]

Richard Ellis和Cushman& [换行]

韦克菲尔德获得合同。 [行结束]

有人可以告诉我如何编写一个忽略空格之间的空格的正则表达式 单词和忽略行结尾或将查找包含所有类型的空白(即不均匀的单词)的单词 词之间的空格;线条或线条末端的空格;和标签(我猜这个信息是 以某种方式嵌入PDF文件中。)

以下是我要求PowerGREP搜索的一组术语示例:

\bCB Richard Ellis\b
\bCB Richard Ellis Hotels\b
\bCentaur Services\b
\bChapman Herbert\b
\bCharities Property Fund\b
\bChetwoods Architects\b
\bChurch Commissioners\b
\bClive Emson\b
\bClothworkers’ Company\b
\bColliers CRE\b
\bCombined English Stores Group\b
\bCommercial Estates Group\b
\bConnells\b
\bCooke & Powell\b 
\bCordea Savills\b
\bCrown Estate\b
\bCushman & Wakefield\b
\bCWM Retail Property Advisors\b

[请注意,每个词组末尾的每个\ b和下一个词组的开头都有一个分隔的硬回车。]

顺便说一句,我是一名制作记者,通常不会参与寻找IT类型的解决方案 发现很难掌握PowerGREP网站上的技术语言。

感谢您的帮助

艾利森

2 个答案:

答案 0 :(得分:0)

您的名字中有硬编码的空格。用\s+替换它们,你应该没问题。

E.g:

CB\s+Richard\s+Ellis

发生的事情是,当你有一个强制换行符时,它就不再有那个空格(“”)了。相反,它有\n\r\n。使用\s+意味着您正在查找任何空格字符,包括回车和换行符,数量为一个或多个。

答案 1 :(得分:0)

匹配空格的正则表达式为\s,因此它将是

\bCB\s+Richard\s+Ellis\b

\s+ =匹配至少一个空格)。换行符为\n(换行符)和\r(返回),具体取决于您的操作系统。因此,使用[]形成一个组,包括所有[\r\n\s]将导致:

\bCB[\r\n\s]+Richard[\r\n\s]+Ellis\b