我需要使用正则表达式匹配一个字符串,其中单引号
- 可以出现零次或一次
- 不应位于字符串的开头或结尾
- 前面应该至少有一个字母(如果出现单引号)
字符串的最小长度应为 2,最大长度不应超过 25 个字符
最多可以有两个空格
我从以下问题中获得了一些帮助,关于只出现一个字符(在我的例子中是一个单引号)
并想出了这个
^([^']([a-zA-Z])+(\s){0,1})+('){0,1}([a-zA-Z][^'])+$
应该匹配的示例字符串
- 香农·德科斯塔
- 香农梅修斯
- RCS
- J德科斯塔
不应匹配的示例字符串
- ''香农·德科斯塔
- ''香农·德科斯塔
- Shanon Dcosta(Shanon 之前的空格或 Dcosta 之后的空格)
- 香农·德科斯塔''
- 香农·劳伦斯·詹姆斯·德科斯塔
- 香农科斯塔
问题:
- 我的正则表达式匹配以空格开头的字符串
- 它不匹配 shanon d'cos 和 shanon d'costa但匹配 shanon d'cost
- 最多 25 个字符也不起作用
任何有关此的帮助/建议将不胜感激。
编辑 2013 年 9 月 12 日
字符串不应包含除单引号和空格外的特殊字符