【发布时间】:2014-02-28 14:01:29
【问题描述】:
希望有人可以帮助我使用正则表达式来验证名称。标准是字符串长度必须在 1 到 30 个字符之间,并且允许以下内容:大写字母、小写字母、空格、撇号、句号(或句点)和连字符。
我有一个正则表达式可以做到这一点,但复杂的是“特殊”字符(空格、撇号、句号、连字符)可能不是连续的。所以你不能这样:“Smithers-'Jones”(连字符后跟撇号),或者这个:“Smithers-Jones”(空格后跟连字符),或者这个“O''Reilly”(连续的撇号)。
从我目前所读的内容来看,我认为我需要以某种方式使用反向引用,但我还没有设法让任何工作。我见过检测重复字符的示例,但这并不完全相同。
任何帮助将不胜感激。
【问题讨论】:
-
我认为您需要前瞻,但为此我什至会手动为其编写解析器。这将是一个非常简单的循环。您可能比使用脑力想出正则表达式并在此处发布更快地编写它。但这仍然是一个有效的问题。只是我的 2 美分。
标签: regex