Java 如何验证字符串的正确大小写?

Java 如何验证字符串的正确大小写?,java,sql,sql-server,Java,Sql,Sql Server,SQL server中的表有一个列测试 test ------- This Is Another Test This is another Test 我想查询应返回输出的表: 预期产出: test ------- This Is Another Test 我编写的查询没有为正确的大小写提供预期的输出检查: select * from proptest where test like '[A-Z][a-z]{2}(?: [A-Z][a-z]*)*$'; 如何检查值大小写是否正确?您在标题中要

SQL server中的表有一个列测试

test
-------
This Is Another Test
This is another Test
我想查询应返回输出的表:

预期产出:

test
-------
This Is Another Test
我编写的查询没有为正确的大小写提供预期的输出检查:

select * from proptest where test like '[A-Z][a-z]{2}(?: [A-Z][a-z]*)*$';

如何检查值大小写是否正确?

您在标题中要求的内容与您的问题和评论不同。要么你不明白正确的大小写是什么,要么你只需要在每个单词的开头检查大写字母

如果你真的想验证正确的大小写,你还需要处理英语赋予我们的所有奇妙变化。例如,
Sean McDonald
?肖恩·麦克唐纳怎么样?然后是
MacDonald
MacDonald
,然后是连字符或缩写词带来的乐趣。
O'Leary
不应该被同样对待吗

简言之,这几乎是不可能做到的。尤其是在SQL中,所有这些都是您自己的


也就是说,如果您只想首先查找所有具有小写字母的字符串,可以执行以下操作:

declare @t table(t nvarchar(100));
insert into @t values('This Is Another Test'),('This is another Test');

select *
from @t
where t collate Latin1_General_CS_AS not like '% [abcdefghijklmnopqrstuvwxyz]%';    -- For some reason [a-z] still matches upper case letters on my machine.
输出:

+----------------------+
|          t           |
+----------------------+
| This Is Another Test |
+----------------------+

您在标题中要求的内容与您的问题和评论不同。要么你不明白正确的大小写是什么,要么你只需要在每个单词的开头检查大写字母

如果你真的想验证正确的大小写,你还需要处理英语赋予我们的所有奇妙变化。例如,
Sean McDonald
?肖恩·麦克唐纳怎么样?然后是
MacDonald
MacDonald
,然后是连字符或缩写词带来的乐趣。
O'Leary
不应该被同样对待吗

简言之,这几乎是不可能做到的。尤其是在SQL中,所有这些都是您自己的


也就是说,如果您只想首先查找所有具有小写字母的字符串,可以执行以下操作:

declare @t table(t nvarchar(100));
insert into @t values('This Is Another Test'),('This is another Test');

select *
from @t
where t collate Latin1_General_CS_AS not like '% [abcdefghijklmnopqrstuvwxyz]%';    -- For some reason [a-z] still matches upper case letters on my machine.
输出:

+----------------------+
|          t           |
+----------------------+
| This Is Another Test |
+----------------------+

使用二进制文件进行逐字节比较

SELECT * from proptest WHERE BINARY test='This Is Another Test';

使用二进制文件进行逐字节比较

SELECT * from proptest WHERE BINARY test='This Is Another Test';

列排序?这与Java有什么关系?
[A-Z][A-Z]{2}
只匹配长度为3的单词,然后我尝试检查字符串中的每个单词是否都是大写字母,[A-Z][A-Z]{2}这应该可以接受任意数量的字母@Lino
[A-Z]
是1个大写字母,
[A-Z]{2}
后跟2个小写字母,总共是一个3个字母的单词列排序规则?这与Java有什么关系?
[a-Z][a-Z]{2}
只匹配长度为3的单词,然后我尝试检查字符串中的每个单词的字母是否为大写,[a-Z][a-Z]{2}这应该接受任意数量的字母@Lino
[A-Z]
是一个大写字母,
[A-Z]{2}
后跟2个小写字母,这总共是一个由3个字母组成的单词