regex - 正则表达式禁止撇号和连字符之前或之后的任何空格
问题描述
我需要对此要求进行详细验证:
- 接受字母(AZ 或 az)
- 可能包含此特殊字符 (åçêëèïîìæôöòûùÿáíóúñ]*$)
- 接受空格、撇号和连字符
- 可以在非空格字符之间使用撇号和连字符,例如:
Le'brahm
Ben-John
不能接受Le' brahm
或Ben -John
或Ben- John
我目前使用此正则表达式,但无法部分满足第 4 项要求和第 3 项要求
^[a-zA-Z åçêëèïîìæôöòûùÿáíóúñ]*$
如果我像这样添加连字符
^[a-zA-Z -'åçêëèïîìæôöòûùÿáíóúñ]*$
正则表达式变为错误并且它接受数字字符(不应该)
解决方案
你可以试试这个正则表达式:
^[a-zA-Zåçêëèïîìæôöòûùÿáíóúñ]+(?:[-' ][a-zA-Zåçêëèïîìæôöòûùÿáíóúñ]+)*$
正则表达式详细信息:
[a-zA-Zåçêëèïîìæôöòûùÿáíóúñ]+
: 匹配 1+ 个给定的字母[...]
(?:[-' ][a-zA-Zåçêëèïîìæôöòûùÿáíóúñ]+)*
: 匹配 0 个或多个由-
or'
或空格分隔的相同字符集。
推荐阅读
- c# - For loop Group Positions 1-5 并检查 Position 6 & 7
- python - 直接从 dask worker 写入输出
- android - 如何仅检索具有多个电话号码的联系人?
- c - 如何使用有限的字符串 scanf 和散列来解决缓冲区溢出问题?
- netlogo - Netlogo:[CODE] 直接要求你身后的补丁改变颜色
- regex - 带有连字符和点的 Bash 正则表达式
- jquery - 如何为“contenteditable”可编辑字段添加取消按钮?
- android - 将 Cordova 版本从 2.9 更新到 9.0
- python - 如何在 Python 中将两个字典相加以创建另一个具有整数分量的字典?
- fullcalendar - 自定义关于 v4.0.1 中的自定义视图