grep - GREP 在文本中查找长引号
问题描述
我试图在我正在编辑的文本中找到长引号,以便我可以对它们应用不同的样式。我试过这个 GREP:
~[.{230}(?!.~])
我需要让 GREP 找到前面有左引号的任何 230 个字符,不包括任何 230 个字符的序列,包括一个字符后跟一个右引号。这应该会从搜索中消除少于 230 个字符的引号。我的 GREP 找到正确的长度序列,但不排除那些包含右引号的序列。
所以我想找到这个,我的 GREP 会这样做:
但不是这个,我的 GREP 也发现:
因为它有一个结束引号,因此我将其归类为短引号。
有任何想法吗?TIA
解决方案
我花了一段时间才弄清楚如何以适合我的目的的方式表达这一点。Wiktor Stribiżew 提出了以下代码:
‘[^‘]{260,}[.,?!]’
找到开头的引号,但没有更多的开头引号(以排除多个短引号),后跟 260 个或更多字符(我的文本中大约有五行,这是长引号应格式化为断引号的点)以任一结尾整点、逗号、问号或感叹号和结束引号(我已经包含了标点符号和结束引号,而不仅仅是结束引号,否则它会将所有格撇号视为引号的结尾) .
感谢 Wiktor Stribiżew 提供的代码!
编辑,尼尔是正确的,这段代码不会找到多段长引号。但我可以运行:
‘[^’]{150,}~b‘
它将找到任何多段引号(在 Regex 演示中不起作用,但由于某种原因在 InDesign 中起作用)。
推荐阅读
- anaconda - 执行“conda env”时出现“解决环境:失败”错误
- java - 如何使用 Java 设置 AdUnitId?
- rust - Rust 结构类型到整数的映射
- c# - Xamarin android 分组通知未被可折叠摘要取代
- flutter - 在颤振的初始化程序中只能访问静态成员
- python - 具有不同窗口规范的链式火花列表达式产生低效的 DAG
- caching - 基于子域的 AWS CloudFront 缓存
- c - 为什么 time() 报告的时间有时比 C 代码中 timespec_get() 的秒组件慢 1 秒?
- angular - 服务中的值更改时无法重新加载角度组件
- functional-programming - 实现懒惰和记忆