Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 正则表达式全名模式_C#_Regex - Fatal编程技术网

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、 似乎即使我输入“汤姆·琼斯”-仍然会给我错误文本“需要空间”