正则表达式检测连续的字符

时间:2014-02-28 14:01:29

标签: regex

希望有人可以帮助我使用正则表达式来验证名称。标准是字符串的长度必须介于1到30个字符之间,并允许以下内容:大写字母alpha,小写字母alpha,空格,撇号,句号(或句点)和连字符。

我有一个正则表达式可以做到这一点,但复杂的是“特殊”字符(空格,撇号,句号,连字符)可能不连续。所以你不能拥有这个:“Smithers-'Jones”(连字符后跟撇号),或者说:“Smithers -Jones”(空格后跟连字符),或者这个“O''Reilly”(连续撇号)。

从我到目前为止所读到的内容来看,我认为我需要以某种方式使用反向引用,但我还没有成功地完成任何工作。我见过检测重复字符的例子,但这并不完全相同。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:4)

这个正则表达式应该有效:

^(?!.*?[ '.-]{2})[A-Za-z0-9 '.-]{1,30}$

工作演示:http://regex101.com/r/pJ3hJ9