Regex 请帮助了解正则表达式

Regex 请帮助了解正则表达式,regex,Regex,这个表达有什么不对 ^[a-zA-Z]+(([\''\-][a-zA-Z])?[a-zA-Z]*)*$ 我想允许字母字符带有空格、、和“字符” 比如奥尼尔;Jackson Peter,Mary Jane这将匹配至少由一个字符组成的任何字符串,可以是字母字符、连字符或单引号: ^[a-zA-Z-\']+$ 这还将包括空字符串: ^[a-zA-Z-\']*$ 如果需要以字母字符开头和结尾(如名称所示): 以下是您所需的全部内容: ^[a-zA-Z' -]+$ 重要的是“-”是组中的最后一个字

这个表达有什么不对

^[a-zA-Z]+(([\''\-][a-zA-Z])?[a-zA-Z]*)*$
我想允许字母字符带有空格、、和“字符”


比如奥尼尔;Jackson Peter,Mary Jane

这将匹配至少由一个字符组成的任何字符串,可以是字母字符、连字符或单引号:

^[a-zA-Z-\']+$
这还将包括空字符串:

^[a-zA-Z-\']*$
如果需要以字母字符开头和结尾(如名称所示):


以下是您所需的全部内容:

^[a-zA-Z' -]+$
重要的是“-”是组中的最后一个字符,否则它将被解释为一个范围(除非用“\”转义)

在目标语言中以字符串形式实际输入表达式的方式因语言而异。对于C#,我通常使用“@”字符串,如下所示:

var regex = new Regex(@"^[a-zA-Z' -]+$");
像这样的

^[a-zA-Z '\-,]*$

提供您希望它匹配的内容和不希望它匹配的内容的示例我希望它将字母字符与空格,-和“字符”匹配什么语言?可能您不需要在第二个子句中转义“”和-。C#,我将其用于正则表达式验证控件您的正则表达式匹配空字符串。@太多php:不再:)但是如果这是用于ASP.NET,您应该使用单独的
RequiredFieldValidator
控件,因为(默认情况下)
RegularExpressionValidator
控件不会在空字段上调用……您确定最后一个连字符不会被解释为范围吗?把它放在最后会更安全。此外,虽然不太可能,但您可能有一个只有一个字母的名称,因此您可能希望在
$
之前抛出一个
^[a-zA-Z '\-,]*$