这个表达有什么问题?
^[a-zA-Z]+(([\''\-][a-zA-Z])?[a-zA-Z]*)*$
我想允许带空格的字母字符, - 和'字符
例如O'neal; Jackson-Peter,Mary Jane答案 0 :(得分:3)
以下是您所需要的:
^[a-zA-Z' -]+$
重要的是“ - ”是组中的最后一个字符,否则它将被解释为一个范围(除非你用“\”将其转义)
如何在目标语言中将该表达式实际输入为字符串,具体取决于语言。对于C#,我通常使用“@”字符串,如下所示:
var regex = new Regex(@"^[a-zA-Z' -]+$");
答案 1 :(得分:2)
这将匹配由至少一个字符组成的任何字符串,可以是字母字符,连字符或单引号:
^[a-zA-Z-\']+$
这还包括空字符串:
^[a-zA-Z-\']*$
如果它需要以字母字符开头和结尾(如名字一样):
^[a-zA-Z][a-zA-Z-\']*[a-zA-Z]$
答案 2 :(得分:0)
这样的东西?
^[a-zA-Z '\-,]*$