GREP 查找不带结束撇号的字符序列

GREP to find a sequence of characters without a closing apostrophe

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

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

我需要的是让 GREP 找到以 left/opening 引号开头的任何 230 个字符,不包括任何 230 个字符的序列,包括一个字符后跟 right/clsoing 引号。这应该会从搜索中消除少于 230 个字符的引号。我的 GREP 找到了正确的长度序列,但不排除那些包含正确引号的序列。

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

但不是这个,我的 GREP 也找到了:

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

有什么想法吗? TIA

您可以匹配一个左 后跟任何字符(左引号或右引号除外)出现 230 次或更多次。

要不匹配右引号,您可以使用正向先行断言它。

‘[^‘’]{230,}(?=’)
  • 匹配
  • [^‘’]{230,} 使用 negated character class
  • 以外的任何字符重复 230 次以上
  • (?=’)正向前瞻,直接向右断言

看到一个regex demo

谢谢@Thefourthbird。

所以我需要的是:

‘[^’]{230,}

搜索开头的撇号 ‘ 后跟除结尾的撇号 [^'] 之外的 230 个或更多字符 {230,}

奇怪的是,如果您将 InDesign 的代码用于左 ~[ 和右 ]~ 撇号,它不起作用!