有一个巨大的全名列表,我只需要过滤名字长度超过3个字母字符且姓氏超过7个字母字符的名称。全名应该只包含1个名字和1个姓氏,用一个空格分隔。在名字和姓氏中都不允许使用特殊字符。全名的总长度不得超过26个字符。
我不知道如何将条件组合起来,好像我将量词放在括号后面,它不会比较全名的长度,而是正则表达式匹配输入文本的次数。
(([A-Za-z]{3,} [A-Za-z]{7,}){26}
这肯定可以由多个正则表达式完成。困难的部分是创建一个正则表达式,这是必须的。
答案 0 :(得分:0)
您可以使用前瞻:
(?=^.{1,26}$)([A-Za-z]{3,} [A-Za-z]{7,})
第一部分将断言长度为0到26,第二部分是与名称匹配的规则。
答案 1 :(得分:0)
试试这个正则表达式:
(?=^[a-z]{3,}\s[a-z]{7,}$)(.*){1,27} //global,case-insensitive
它使用零长度前瞻断言来满足逻辑条件(首先是3+,一个空格,7+最后,只有字母),以及量化的“任何”到消耗适当数量的字符。