regex - 如何查找和标准化章节和页面参考的拼写 (Adobe InDesign)?
问题描述
我想查找后跟“f”、“ff”、“f”的数字。或“ff”。按照给定的约定/规则标准化拼写。
我已经尝试了一些正则表达式,但不幸的是我没有找到一个通用表达式来抓住上述所有情况(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 进行分组,以便它们可以在替换表达式中使用,以将拼写标准化为其中一种情况:
- 123 英尺。(带空格,带点)
- 123 ff(带空格,不带点)
- 123ff。(不带空格,带点)
- 123ff(无空格,无点)
解决方案
我建议
\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。
推荐阅读
- reactjs - React-Router:为什么重定向到 404 页面?
- java - IntelliJ 不工作 - 当我启动我的程序时,它在输入之前完成
- css - CSS - 水平嵌套列表乱序换行
- freepascal - Pascal Debian Jessie TryGetData 不工作
- android - 运行不同的线程不允许显示活动
- c++ - 通过模板函数从其地址调用函数
- tfs - TFS:链接提交到工作项停止工作(整个集合)
- python - 在不更改负值的情况下将用于数据框中空列的“-”转换为 0?
- laravel - FirstOrCreate 制作副本
- java - 尝试读取从过程返回的 oracle Clob 时连接关闭