typ*_*aul 7 regex adobe-indesign grep-indesign
我想找到后跟“ f”,“ ff”,“ f”的数字。或“ ff”。按照给定的约定/规则对拼写进行标准化。
我已经尝试过一些正则表达式,但是不幸的是,我没有找到一个通用表达式来捕获上述所有情况(f,ff,f。,ff。)。
用口头表达似乎很容易:
正则表达式的开头非常简单,但是我无法弄清楚如何处理不同的“ f”情况以及后面的NOT边界。
我最好的猜测是:
(?<=\b)(\d+(\h|\b)?f{1,2})\.?
Run Code Online (Sandbox Code Playgroud)
但随后仍然发现了带有字字符的st。
当我将正则表达式扩展为:
(?<=\b)(\d+(\h|\b)?f{1,2})\.?(\W)
Run Code Online (Sandbox Code Playgroud)
“虚假资金”的数量正在减少,但这仍然不是解决方案
我准备了测试线。应当找到包含加号“ +”的行,同时不应找到带有减号“-”的行。
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.
Run Code Online (Sandbox Code Playgroud)
此外,目标是以某种方式将数字和“ f”-大小写进行分组,以便它们可以用于替换表达式中以将拼写标准化为这些情况之一:
我建议
\b(\d+)(\s?)(f{1,2})(?:(\.)\B|\b(?!\.))
Run Code Online (Sandbox Code Playgroud)
细节
\b -字边界(\d+) -第1组:1个以上数字(\s?) -第2组:可选的空格(f{1,2})-第3组:1或2 f秒(?:(\.)\B|\b(?!\.)) -两者之一:
(\.)\B- .如果未跟单词char一起在第4组中捕获| - 要么\b(?!\.) -单词边界,后跟点。然后,替换很容易:
123 ff.: $1 $3.123 ff : $1 $3123ff. : $1$3.123ff : $1$3如果替换模式中不需要空格和点,请删除分组并调整替换后向引用中的ID。