【发布时间】:2017-02-28 10:10:19
【问题描述】:
我正在使用 pcre 正则表达式,并且正在尝试清理邮件列表名称。
我正在尝试验证和执行以下规则:
- 名称字符串以大写首字母开头,后跟句点和空格。
- 最后跟的空格不超过 18 个字符,最后没有空格。
我在这里提供了一些示例:Example Name Strings
1. J. Doe
2. J Doe
3. J. Doe
4. J Doe
5. J. Doe
- 数字 1 是有效的名称字符串
- 数字 2 缺少第一个初始之后的句点
- 数字 3 在句点后面有多个空格。
- 数字 4 没有句点,句点后有两个空格,末尾有多余的空格。
- 数字 5 在名称字符串的末尾有空格
第一个字符串符合所有条件,但所有其他字符串由于某种原因(没有句点、多余空格等)或其他原因不符合条件。
正则表达式是否可以获取这五个名称字符串并返回 5 个相同的有效名称字符串,如数字 1。
我尝试使用条件正则表达式,但发现这是一条死胡同。
【问题讨论】:
-
我们当然可以编写一个正则表达式来验证单个字母首字母后跟姓氏。但这会涵盖您的所有情况吗?
-
@TimBiegeleisen 我不确定我是否关注您的问题/评论。
-
我的评论是说您真正想要验证什么?一个首字母后跟一个名字真的涵盖所有情况吗?
-
@TimBiegeleisen 好的,我明白了。是的,它涵盖了所有情况,但仍然留下了很多潜在的情况......这就是我觉得困难的地方。
-
如果它仍然留下很多潜在的案例,那么它并没有涵盖所有案例,对吧?
标签: regex