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
正则表达式-在组合语句中嵌套量词 《希伯来语》中的姓可以是英文格式,它只是字母的常规组合,如“史米斯”、“cAMP”、“杰克”等,或者是中间有空格的两个词的组合,如“Ben David”、“Bar Yohay”、“YOM ToV”。我尝试创建一个ReGEXP,它允许第一个格式——至少两个字母的姓氏长,或者第二个名字——一个姓氏,由两个单词组成,每个字母长两个或多个,中间有一个空格。以下是我的想法: (^[a-z]{2,}$)|(^[a-z]{2,}$)(^[]$)(^[a-z]{2,}$)_Regex - Fatal编程技术网

正则表达式-在组合语句中嵌套量词 《希伯来语》中的姓可以是英文格式,它只是字母的常规组合,如“史米斯”、“cAMP”、“杰克”等,或者是中间有空格的两个词的组合,如“Ben David”、“Bar Yohay”、“YOM ToV”。我尝试创建一个ReGEXP,它允许第一个格式——至少两个字母的姓氏长,或者第二个名字——一个姓氏,由两个单词组成,每个字母长两个或多个,中间有一个空格。以下是我的想法: (^[a-z]{2,}$)|(^[a-z]{2,}$)(^[]$)(^[a-z]{2,}$)

正则表达式-在组合语句中嵌套量词 《希伯来语》中的姓可以是英文格式,它只是字母的常规组合,如“史米斯”、“cAMP”、“杰克”等,或者是中间有空格的两个词的组合,如“Ben David”、“Bar Yohay”、“YOM ToV”。我尝试创建一个ReGEXP,它允许第一个格式——至少两个字母的姓氏长,或者第二个名字——一个姓氏,由两个单词组成,每个字母长两个或多个,中间有一个空格。以下是我的想法: (^[a-z]{2,}$)|(^[a-z]{2,}$)(^[]$)(^[a-z]{2,}$),regex,Regex,(我知道它不允许使用大写字母) 出于某种原因,它确实允许第一种格式的名称,如Smith和Jerry,但不允许第二种格式的名称。中间的空间格式化有问题吗?对于regexp专业人员来说,这应该是一个简单的问题。提前感谢:)您误用了锚(^和$)。它们分别匹配字符串的开头和结尾。你真正想要的是: (^[a-z]{2,}$)|(^([a-z]{2,})([ ])([a-z]{2,})$) 此外,您可以将表达式简化为: ^[a-z]{2,}$|^[a-z]{2,} [a-z]{2,}$ 除非您特别需要捕

(我知道它不允许使用大写字母) 出于某种原因,它确实允许第一种格式的名称,如Smith和Jerry,但不允许第二种格式的名称。中间的空间格式化有问题吗?对于regexp专业人员来说,这应该是一个简单的问题。提前感谢:)

您误用了锚(
^
$
)。它们分别匹配字符串的开头和结尾。你真正想要的是:

(^[a-z]{2,}$)|(^([a-z]{2,})([ ])([a-z]{2,})$)
此外,您可以将表达式简化为:

^[a-z]{2,}$|^[a-z]{2,} [a-z]{2,}$
除非您特别需要捕获组

或者(因此您只需要一对锚):


(?:…)
是一个非捕获组,必须限制替换范围。

您可以将正则表达式简化为

^[a-z]{2,}(?: [a-z]{2,})?$

你知道^和$做什么吗?那是因为你对
^
$
(字符串绑定的开始和结束)过于热衷。你的第二个模式(整体)应该被包装在
^
..
$
中,而不是围绕每个标记。你能把模式分解并注释它,让OP有一个解决方案并从中学习吗?@BradChristie-OP似乎理解字符类、交替和量词的用法。他似乎在锚的问题上弄错了,仅此而已。我觉得这足以说明锚定只在开头和结尾。你的锚定的范围是错误的。您需要一个非捕获组围绕备选方案。事实上,你根本不需要改变。@TimPietzcker-你完全正确。我编辑了解决方案,不是按照我本来的方式,而是更接近OP的开头,向他展示了不同之处。谢谢,谢谢!这有助于:)我不知道如何正确使用“^”和$。
^[a-z]{2,}(?: [a-z]{2,})?$