我是正则表达式的新手并尝试构建一个表达式,其中我想检查字符串的前三个字母是否为大写?
我有这样的表达" ALB.latin"或CAT.Cyrillic等。我只想检查点/句点之前的前三个字母是否为大写,而点/句点之后的字母是否属于标题大小写。
我尝试在FME测试过滤器^[A-Z]{3}\.[A-Za-z]$
中构建表达式。
答案 0 :(得分:0)
您需要从模式中删除$
锚点,因为它需要在最后一个[A-Za-z]
子模式与大写字母匹配后才显示字符串的结尾。
如果您只需要检查字符串是否以3个大写ASCII字母.
和ASCII字母开头,请使用
^[A-Z]{3}\.[A-Za-z]
或者,如果您还需要确保最后只有一个或多个ASCII字母,请在+
和[A-Za-z]
之间添加$
,以匹配定义的1个或多个符号在[a-zA-Z]
字符类中:
^[A-Z]{3}\.[A-Za-z]+$
请参阅regex demo。
答案 1 :(得分:0)
希望这能为您提供解决方案。
^[A-Z]{3}\.[A-Z][a-z]*$
有了这个,DOT之后的信件将出现在标题案例中。但在DOT之后,至少应该有一个标题案例。