Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.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
Regex 名字和姓氏的正则表达式匹配:如何接受点和连字符?_Regex_Laravel_Laravel 4 - Fatal编程技术网

Regex 名字和姓氏的正则表达式匹配:如何接受点和连字符?

Regex 名字和姓氏的正则表达式匹配:如何接受点和连字符?,regex,laravel,laravel-4,Regex,Laravel,Laravel 4,我正在尝试编写一个简单的正则表达式来验证姓名。我在特殊角色方面遇到了一些问题 我希望名称至少由一个a-zA-Z组成,然后是空格、圆点和字符名称的任意组合 试图证明像佩妮·奥马利或罗伯·约翰逊这样的好名字 到目前为止,我正在运行以下程序: /^[A-z][A-z\s.']+$/ 但它与上述名称不匹配;它适用于没有名称的名称。和',不在乎是否有开始的空间 已解决:根据@basher的请求,以下是我在laravel验证器中运行的代码。有趣的是,我肯定我第一次尝试了反斜杠版本(你在下面看到的那个,不

我正在尝试编写一个简单的正则表达式来验证姓名。我在特殊角色方面遇到了一些问题

我希望名称至少由一个a-zA-Z组成,然后是空格、圆点和字符名称的任意组合

试图证明像佩妮·奥马利或罗伯·约翰逊这样的好名字

到目前为止,我正在运行以下程序:

/^[A-z][A-z\s.']+$/ 
但它与上述名称不匹配;它适用于没有名称的名称。和',不在乎是否有开始的空间

已解决:根据@basher的请求,以下是我在laravel验证器中运行的代码。有趣的是,我肯定我第一次尝试了反斜杠版本(你在下面看到的那个,不是我在原始帖子上放的那个),但似乎不起作用

'name' => 'required|between:3,15|regex:/^[A-z][A-z\s\.\']+$/',
'surname' => 'required|between:3,15|regex:/^[A-z][A-z\s\.\']+$/',
感谢所有做出贡献的人。不过,我不知道如何在你们中间把正确答案的功劳归为。。
@user2141046,是的,\s似乎可以工作,至少在laravel框架中是这样。

我不确定您是否可以在括号中插入\s

尝试将
[a-zA-Z.]
[a-zA-Z\.\'\.\'\]
作为第二个正则表达式(可能会根据语言而改变)

在perl正则表达式上也用
^[A-z][A-z\'.\.\]+

顺便说一句,永远不要记住ASCII码,所以我更喜欢写
A-Za-z
;)
另一件可能会困扰您的事情是隐藏字符(前导空格)或回车符(如果存在操作系统差异),最好去掉尾随的
$
,然后再次尝试检查它,或者去掉前导的
^
并检查空格问题。

正则表达式看起来不错。您可能没有正确地实现它。介意发布那个代码吗?@basher,我在上面加的。事实上,它需要逃离。有趣的是,我确信这是我第一次尝试,但似乎不起作用。谢谢我不知道Laravel的情况,但通常可以将字符类(
\s
)插入到
[]
中。我也不太了解Jubreat,但这可能是他的问题。每种语言及其问题…@Dukeling,user2141046谢谢,是的,似乎我可以插入\s。我保留了/^$/因为它似乎不会引起太大的麻烦,而且我可以通过开头或结尾存活下来。”。谢谢大家。
 echo "Rob M. Mc'Fly" > try
 grep --colour "[a-zA-Z\'\.\ ]" !$
 >> Rob M. Mc'Fly  (colors the entire name).