【发布时间】:2020-12-04 09:02:21
【问题描述】:
我得到一个字符串(名称),它应该检查以下内容:
- 介于 2 到 30 个字符之间
- 名称只能包含字母和空格
- 每部作品的首字母大写
- 每个单词用空格隔开
- 名称不能以空格开头或结尾
- 不允许特殊字符
这是我的正则表达式字符串:"[[[A-Z]{1}[a-zA-Z]*[\\s]?+]{2,30}[^\\s]"
“Roger Federer”应该是有效的,这说明它是 “罗杰费德勒”不应该是有效的,但我说它是 “Roger Federer $”应该是无效的,但我的说是
我很好奇我是否执行这些错误,我对正则表达式很陌生
【问题讨论】:
-
matches("(?=.{2,30}$)\\p{Lu}\\p{L}*(?:\\s\\p{Lu}\\p{L}*)*") -
为什么它必须全部在一个正则表达式中?