首页 > 解决方案 > 如何查找和标准化章节和页面参考的拼写 (Adobe InDesign)?

问题描述

我想查找后跟“f”、“ff”、“f”的数字。或“ff”。按照给定的约定/规则标准化拼写。

我已经尝试了一些正则表达式,但不幸的是我没有找到一个通用表达式来抓住上述所有情况(f,ff,f.,ff.)。

用口语来说,这似乎很容易:

正则表达式的开头很容易,但我不知道如何处理不同的“f”-case 以及后面的 NOT 边界。


我最好的猜测是:

(?<=\b)(\d+(\h|\b)?f{1,2})\.?

但是仍然会找到后面跟着一个单词字符的stings。


当我将正则表达式扩展到:

(?<=\b)(\d+(\h|\b)?f{1,2})\.?(\W)

“虚假资金”数量在减少,但仍不是解决办法


我准备了测试线。应该找到包含加号“+”的行,同时不应该找到带有减号“-”的行。

00f aaa +
00f. aaa +
00ff aaa +
00ff. aaa +
00 f aaa + 
00 f. aaa +
00 ff aaa +
00 ff. aaa +
+ aaa 00f aaa +
+ aaa 00f. aaa +
+ aaa 00ff aaa +
+ aaa 00ff. aaa +
+ aaa 00 f aaa + 
+ aaa 00 f. aaa +
+ aaa 00 ff aaa +
+ aaa 00 ff. aaa +
+ aaa 00f
+ aaa 00f.
+ aaa 00ff
+ aaa 00ff.
+ aaa 00 f 
+ aaa 00 f.
+ aaa 00 ff
+ aaa 00 ff.

00 faaa -
00 f.aaa -
00 ffaaa -
00 ff.aaa -
00af aaa - 
00af. aaa -
00aff aaa -
00aff. aaa -
- aaa 00 faaa -
- aaa 00 f.aaa -
- aaa 00 ffaaa -
- aaa 00 ff.aaa -
- aaa 00af aaa - 
- aaa 00af. aaa -
- aaa 00aff aaa -
- aaa 00aff. aaa -
- aaa00f
- aaa00f.
- aaa00ff
- aaa00ff.
- aaa 00af 
- aaa 00af.
- aaa 00aff
- aaa 00aff.

00faaa -
00f.aaa -
00ffaaa -
00ff.aaa -
00af aaa - 
00af. aaa -
00aff aaa -
00aff. aaa -
- aaa00 faaa -
- aaa00 f.aaa -
- aaa00 ffaaa -
- aaa00 ff.aaa -
- aaa00af aaa - 
- aaa00af. aaa -
- aaa00aff aaa -
- aaa00aff. aaa -
- aaa00af 
- aaa00af.
- aaa00aff
- aaa00aff.

此外,目的是以某种方式对数字和“f”-cases 进行分组,以便它们可以在替换表达式中使用,以将拼写标准化为其中一种情况:

标签: regexadobe-indesigngrep-indesign

解决方案


我建议

\b(\d+)(\s?)(f{1,2})(?:(\.)\B|\b(?!\.))

查看正则表达式演示

细节

  • \b- 单词边界
  • (\d+)- 组 1:1+ 位
  • (\s?)- 第 2 组:可选空格
  • (f{1,2})- 第 3 组:1 或 2f
  • (?:(\.)\B|\b(?!\.))- 两者之一:
    • (\.)\B-.如果后面没有单词 char,则在第 4 组中捕获
    • |- 或者
    • \b(?!\.)- 单词边界不带点。

然后,替换很容易:

  • 123 ff.$1 $3.
  • 123 ff$1 $3
  • 123ff.$1$3.
  • 123ff$1$3

如果替换模式中不需要空格和点,请删除分组并调整替换反向引用中的 ID。


推荐阅读