C# 正则表达式全名模式
C# 正则表达式全名模式,c#,regex,C#,Regex,试图寻找一个全名的正则表达式模式,但似乎找不到
理想情况下,你会喜欢的
Tom Franklin
tom Franklin
tom franklin
tom franklin-jones
即允许中间的1个空间和一些基本连字符等,但这就是全部。有人知道怎么做吗
编辑:包括
René Hadron van der Ööps
\你可以使用/([\p{L}'-]+)([\p{L}'-]+)/来捕捉所有可能的字母。或/([a-z'-]+)([a-z'-]+)/i仅捕获ascii字母
组([\p{L}-
试图寻找一个全名的正则表达式模式,但似乎找不到
理想情况下,你会喜欢的
Tom Franklin
tom Franklin
tom franklin
tom franklin-jones
即允许中间的1个空间和一些基本连字符等,但这就是全部。有人知道怎么做吗
编辑:包括
René Hadron van der Ööps
\你可以使用/([\p{L}'-]+)([\p{L}'-]+)/
来捕捉所有可能的字母。或/([a-z'-]+)([a-z'-]+)/i
仅捕获ascii字母
组([\p{L}-]+)
表示[\p{L}-]
至少重复一次。而\p{L}
表示任何unicode字母。末尾的-
表示名称中允许使用“-”
注意:
使用[]
捕获字符时,连字符必须位于字符集的开头或结尾
编辑:
奥布莱恩先生现在很高兴
资源:
您可以使用/([\p{L}'-]+)([\p{L}'-]+)/
捕获所有可能的字母。或/([a-z'-]+)([a-z'-]+)/i
仅捕获ascii字母
组([\p{L}-]+)
表示[\p{L}-]
至少重复一次。而\p{L}
表示任何unicode字母。末尾的-
表示名称中允许使用“-”
注意:
使用[]
捕获字符时,连字符必须位于字符集的开头或结尾
编辑:
奥布莱恩先生现在很高兴
资源:
嗨,gamebit-感谢您的回复。我使用的是ascii码,当我输入它时-不喜欢\w和\s-会给我“无法识别的转义序列”hi gamebit-感谢您的响应。我使用的是ascii码,当我输入时-不喜欢\w和\s-给我“无法识别的转义序列”,O'Brien先生会对他的名字无效感到失望;)奥布莱恩先生需要一个名字:P,但是的,第二个名字是有效的!请不要用粗略的正则表达式来限制你认为“有效”的名称。“吉姆·鲍勃·奥雷利”是“勒内强子·范德奥普斯”只是它的开始。。。人名中出现的字符和结构比你想象的要多得多。@bobince,这正是我想要了解的,尽管你做得更好。这可能有助于阅读:奥布赖恩先生会对他的名字无效感到失望;)奥布莱恩先生需要一个名字:P,但是的,第二个名字是有效的!请不要用粗略的正则表达式来限制你认为“有效”的名称。“吉姆·鲍勃·奥雷利”是“勒内强子·范德奥普斯”只是它的开始。。。人名中出现的字符和结构比你想象的要多得多。@bobince,这正是我想要了解的,尽管你做得更好。这可能是一本有用的书:谢谢colin。是的,我正在使用C#-不喜欢\w和\s-给我“无法识别的转义序列”@Tom记住通过写“\\s”或“@”\s”来转义\n不是C#Tom-是你。必须用@ie:string pattern=@“\w”转义反斜杠或在字符串前面加前缀;在这段代码中,您无法真正检测到“RenéHadron van derÖöps”,因为您不知道他的名字或姓氏,而且我没有使用\s,我建议您将其用于姓氏。呃,我似乎在空间中遇到了一个bug?i、 似乎即使我输入“汤姆·琼斯”-仍然会给我错误文本“需要空间”,谢谢科林。是的,我正在使用C#-不喜欢\w和\s-给我“无法识别的转义序列”@Tom记住通过写“\\s”或“@”\s”来转义\n不是C#Tom-是你。必须用@ie:string pattern=@“\w”转义反斜杠或在字符串前面加前缀;在这段代码中,您无法真正检测到“RenéHadron van derÖöps”,因为您不知道他的名字或姓氏,而且我没有使用\s,我建议您将其用于姓氏。呃,我似乎在空间中遇到了一个bug?i、 似乎即使我输入“汤姆·琼斯”-仍然会给我错误文本“需要空间”