问题描述
我试图在我正在编辑的文本中找到长引号,以便我可以对它们应用不同的样式。我试过这个 GREP:
~[.{230}(?!.~])
我需要的是让 GREP 找到以左/左引号开头的任何 230 个字符,不包括任何 230 个字符的序列,包括一个字符后跟右/左引号的字符。这应该从搜索中消除少于 230 个字符的引号。我的 GREP 找到了正确的长度序列,但不排除那些包含正确引号的序列。
所以我想找到这个,这是我的 GREP 所做的:
但不是这个,我的 GREP 也发现了:
因为它有一个结束语,因此我将其归类为短引号。
有什么想法吗? TIA
解决方法
您可以匹配开头 ‘
后跟 230 次或更多出现的任何字符,但开头或结尾引号除外。
要不匹配右引号,您可以使用正向前瞻来断言它。
‘[^‘’]{230,}(?=’)
-
‘
匹配‘
-
[^‘’]{230,}
使用 negated character class 重复除 -
(?=’)
正向预测,直接向右断言’
‘
或 ’
之外的任何字符 230 次以上
看到一个 regex demo。