首页 > 解决方案 > GREP 在文本中查找长引号

问题描述

我试图在我正在编辑的文本中找到长引号,以便我可以对它们应用不同的样式。我试过这个 GREP:

~[.{230}(?!.~])

我需要让 GREP 找到前面有左引号的任何 230 个字符,不包括任何 230 个字符的序列,包括一个字符后跟一个右引号。这应该会从搜索中消除少于 230 个字符的引号。我的 GREP 找到正确的长度序列,但不排除那些包含右引号的序列。

所以我想找到这个,我的 GREP 会这样做:

在此处输入图像描述

但不是这个,我的 GREP 也发现:

在此处输入图像描述

因为它有一个结束引号,因此我将其归类为短引号。

有任何想法吗?TIA

标签: grepadobe-indesign

解决方案


我花了一段时间才弄清楚如何以适合我的目的的方式表达这一点。Wiktor Stribiżew 提出了以下代码:

‘[^‘]{260,}[.,?!]’

找到开头的引号,但没有更多的开头引号(以排除多个短引号),后跟 260 个或更多字符(我的文本中大约有五行,这是长引号应格式化为断引号的点)以任一结尾整点、逗号、问号或感叹号和结束引号(我已经包含了标点符号和结束引号,而不仅仅是结束引号,否则它会将所有格撇号视为引号的结尾) .

感谢 Wiktor Stribiżew 提供的代码!

编辑,尼尔是正确的,这段代码不会找到多段长引号。但我可以运行:

‘[^’]{150,}~b‘

它将找到任何多段引号(在 Regex 演示中不起作用,但由于某种原因在 InDesign 中起作用)。


推荐阅读