我升级到的新版本的类型扩展软件包含了正则表达式。我试图更好地理解它们,所以想要分解它们所包含的两个,以帮助避免在一个单词开头的双重大写。
第一个是
\b[:upper:][:upper:][:lower:]+
我认为这意味着在条目开始之前有一个单词分隔符,前两个字母有一个Capital,然后是一个或多个小写字母。
第二个是
\b(IJ|CC)[:lower:]+
我指的是,如果一个单词以大写“I”和大写“J”或两个连续的大写“C”加上一个或多个小写字母开头,以允许它们作为例外。
我觉得我在这里遗漏了一些东西。任何人都可以建议这些表达是什么意思?
答案 0 :(得分:1)
" IJ"表示字符序列," I"其次是" J" - 没有什么特别的 - 关于行为的结论(如果不是推理)是正确的。
表达式\b(IJ|CC)[:lower:]+
2 只是\b[:upper:][:upper:][:lower:]+
1 的限制性子集,它限制了输入以" IJ"开始或" CC"。
String Matches
------ -------
foo (None)
IJ (None) No mach on [:lower:]+
IJfoo 1, 2 Matches IJ, which also matches [:upper:][:upper:]
CCfoo 1, 2
XXfoo 1 Matches [:upper:][:upper:], not IJ|CC
答案 1 :(得分:0)
[:lower:]和[:upper:]是POSIX正则表达式。
\b Word boundary
(IJ|CC) = "IJ" or "CC"
[:lower:] = [a-z]
[:upper:] = [A-Z]
+ One or more matches of what is right before it.