gpt4 book ai didi

regex - 如何查找章节和页面引用的拼写并对其进行标准化 (Adobe InDesign)?

转载 作者:行者123 更新时间:2023-12-02 00:11:24 28 4
gpt4 key购买 nike

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

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

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

  • 查找数字
  • 后跟一个可选的空格
  • 然后是 f、ff、f。或 ff。
  • 表达式前后仅允许使用空格或非单词边界

正则表达式的开头非常简单,但我不知道如何处理不同的“f”情况和后面的 NOT 边界。

<小时/>

我最好的猜测是:

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

但是仍然发现了后面跟着单词字符的刺。

<小时/>

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

(?<=\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”大小写进行分组,以便它们可以在替换表达式中使用,以将拼写标准化为其中一种情况:

  • 123 及以下。 (带空格,带点)
  • 123 ff(有空格,无点)
  • 123ff。 (没有空格,有点)
  • 123ff(无空格、无点)

最佳答案

我建议

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

请参阅regex demo

详细信息

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

然后,替换很容易:

  • 123 ff。:$1 $3。
  • 123 ff:$1 $3
  • 123ff.:$1$3.
  • 123ff:$1$3

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

关于regex - 如何查找章节和页面引用的拼写并对其进行标准化 (Adobe InDesign)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57581482/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com