关于正则表达请帮忙

时间:2010-06-28 01:29:59

标签: regex

这个表达有什么问题?

^[a-zA-Z]+(([\''\-][a-zA-Z])?[a-zA-Z]*)*$

我想允许带空格的字母字符, - 和'字符

例如O'neal; Jackson-Peter,Mary Jane

3 个答案:

答案 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 '\-,]*$