Newbee尝试正规表达式的手

时间:2017-03-14 10:37:22

标签: regex

我是正则表达式的新手并尝试构建一个表达式,其中我想检查字符串的前三个字母是否为大写?

我有这样的表达" ALB.latin"或CAT.Cyrillic等。我只想检查点/句点之前的前三个字母是否为大写,而点/句点之后的字母是否属于标题大小写。

我尝试在FME测试过滤器^[A-Z]{3}\.[A-Za-z]$中构建表达式。

2 个答案:

答案 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之后,至少应该有一个标题案例。