验证全名的Java正则表达式在Java中只允许空格、字母、逗号和点

验证全名的Java正则表达式在Java中只允许空格、字母、逗号和点,java,regex,Java,Regex,我正在尝试验证给定的字符串。它应该允许(a-z,单词之间的空白,逗号,仅点) 我试过这个,但不起作用: 最终字符串名称=“/^[a-z]+(\s+[a-z]+)*$/i” 请向我推荐 提前感谢。您需要启用不区分大小写的修饰符(?i) 或 您提供的正则表达式和示例将不起作用,因为您不允许使用大写字母。 您可以尝试以下方法: ([a-zA-Z]*(\s)*[\.\,]*)* 这应该起作用: String name = "[a-zA-z]*([,.\\s]+[a-z]*)*" 这应该是有帮助的:为

我正在尝试验证给定的字符串。它应该允许(a-z,单词之间的空白,逗号,仅点)

我试过这个,但不起作用: 最终字符串名称=“/^[a-z]+(\s+[a-z]+)*$/i”

请向我推荐


提前感谢。

您需要启用不区分大小写的修饰符
(?i)


您提供的正则表达式和示例将不起作用,因为您不允许使用大写字母。 您可以尝试以下方法:

([a-zA-Z]*(\s)*[\.\,]*)*
这应该起作用:

String name = "[a-zA-z]*([,.\\s]+[a-z]*)*"
这应该是有帮助的:

为什么要复杂化

"^A-Z[a-z \\.,]+$" <-- something that starts with a capital letter and has only letters, space, dots and commas after that.

“^A-Z[A-Z\\,]+$”
仅限单词、逗号、点之间的空格
您能否提供一个复制此示例?您的示例
“Ravi是java开发人员”
不包含标点符号。请包括一个带有逗号和点的示例。(它们是否也只能在单词之间出现?它们能否形成自己的单词,即被空格包围?它们能否成为第一个或最后一个字符?)您认为
/i
在您的正则表达式中做了什么?这是Java,不是
sed
perl
。如果您想忽略大小写,请在正则表达式前面加上
(?i)
,谢谢您的回答,但它不允许点。@Ravi对我来说似乎不清楚。你能提供一个能满足你需要的例子吗?
([a-zA-Z]*(\s)*[\.\,]*)*
String name = "[a-zA-z]*([,.\\s]+[a-z]*)*"
"^A-Z[a-z \\.,]+$" <-- something that starts with a capital letter and has only letters, space, dots and commas after that.