作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要接受一个名字作为输入,并检查第一个字母是否为大写字母以及字符串末尾是否可以有 1 个空格。
此正则表达式适用于“鲍勃”:
^[A-Z][A-Za-z\p{L}]+[\s,.'\-]?[a-zA-Z\p{L}]*$
^[A-Z\p{L}][A-Za-z\p{L}]+[\s,.'\-]?[a-zA-Z\p{L}]*$
最佳答案
任何 Unicode 大写字母都可以与 \p{Lu}
匹配.
用
^\p{Lu}\p{L}+[\s,.'\-]?\p{L}*$
^\p{Lu}\p{L}+(?:[\s,.'-]\p{L}+)?$
[\s,.'-]
字符类中定义的内容)。
[A-Za-z\p{L}]
毫无意义。自
\p{L}
已经匹配
[a-zA-Z]
.
^
- 字符串开头 \p{Lu}
- 一个大写的 Unicode 字母 \p{L}+
- 一个或多个 Unicode 字符 (?:[\s,.'-]\p{L}+)?
- 一个或零(可选)序列[\s,.'-]
- 一个空格,,
, .
, '
或连字符 \p{L}+
- 1 个或多个 Unicode 字母 $
- 字符串的结尾。 关于名称为 : Any language but first letter must be capital 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39590563/
我是一名优秀的程序员,十分优秀!