C# 名称的正则表达式应以字母开头

C# 名称的正则表达式应以字母开头,c#,regex,C#,Regex,我正在尝试为名称编写一个正则表达式,它以字母开头,字符串中也可以有空格和数字 目前我正在使用^?=.[a-zA-Z].[a-zA-Z0-9']{1,50}$ 但它接受的字符串是1125151asdgvhavdg。i、 也就是说,它是从一开始就考虑数字 我的绳子应该是这样的 ADS56456455456 fdsf78 简单到: ^([a-zA-Z][a-zA-Z0-9' ]{0,49})$ 这里不需要任何断言简单到: ^([a-zA-Z][a-zA-Z0-9' ]{0,49})$ 此处不需要任

我正在尝试为名称编写一个正则表达式,它以字母开头,字符串中也可以有空格和数字

目前我正在使用^?=.[a-zA-Z].[a-zA-Z0-9']{1,50}$

但它接受的字符串是1125151asdgvhavdg。i、 也就是说,它是从一开始就考虑数字

我的绳子应该是这样的

ADS56456455456 fdsf78

简单到:

^([a-zA-Z][a-zA-Z0-9' ]{0,49})$
这里不需要任何断言

简单到:

^([a-zA-Z][a-zA-Z0-9' ]{0,49})$

此处不需要任何断言

您可以使用以下代码:

^[a-zA-Z\s][a-zA-Z0-9]{1,50}$


此正则表达式以字符开头,允许空格和数字。

您可以使用以下代码:

^[a-zA-Z\s][a-zA-Z0-9]{1,50}$


这个正则表达式以字符开头,允许空格和数字。

您可以这样简洁地表达它:

 ^(?i)[a-z][a-z\d ]{0,49})$
^\p{L}[\p{L}\p{Nd}' ]{0,49}$

您可以这样简洁地表达:

 ^(?i)[a-z][a-z\d ]{0,49})$
^\p{L}[\p{L}\p{Nd}' ]{0,49}$

如果您不能100%确定永远只有Ascii字母需要匹配,那么您应该查看,例如字母\p{L}

\p{L}任何语言的任何字母

或者,收集某些语言所需的信件

因此,您的正则表达式将如下所示:

 ^(?i)[a-z][a-z\d ]{0,49})$
^\p{L}[\p{L}\p{Nd}' ]{0,49}$

我还用属性\p{Nd}替换了0-9,即除表意文字以外的任何文字中的数字0到9。

如果您不能100%确定永远只有Ascii字母需要匹配,那么您应该查看,例如字母\p{L}

\p{L}任何语言的任何字母

或者,收集某些语言所需的信件

因此,您的正则表达式将如下所示:

 ^(?i)[a-z][a-z\d ]{0,49})$
^\p{L}[\p{L}\p{Nd}' ]{0,49}$

我还用属性\p{Nd}替换了0-9除表意文字以外的任何脚本中的数字0到9。

您接受的输入示例?可能是这样的:a123ajdbhbdWhat you hat.*在前瞻性断言中?您接受的输入示例?可能是这样的:a123ajdbhbdWhat you hat you hat.*在前瞻性断言中?