如何限制此
中的字数[A-Za-z,.'-]{2,15}
正则表达式。允许这些字符但只有3次。
这适用于3个字:
(^[A-Za-z,.'-]{2,16}\s[A-Za-z,.'-]{2,16}\s[A-Za-z,.'-]{2,16}$)
从2到16个字符长,但必须有一个较短的方式。
答案 0 :(得分:3)
稍微短一些:
^([A-Za-z,.'-]{2,16}(?:\s[A-Za-z,.'-]{2,16}){2})$
或者,如果你的正则表达式支持它:
^(([A-Za-z,.'-]{2,16})(?:\s(?1)){2})$
答案 1 :(得分:2)
使用否定前瞻:
jobject context = getContext();
jclass cls = jniEnv()->GetObjectClass(context);
jmethodID method = jniEnv()->GetMethodID(cls, "getSystemService", "(Ljava/Lang/String;)Ljava/lang/Object;"); // Fails
请参阅Live Demo
^(?!(?:.*? ){3,})[a-z ,.'-]{2,15}$
将确保您不能拥有超过2个空格
答案 2 :(得分:1)
如果您的单词用空格分隔,请尝试([A-Za-z,.'-]{2,15}\s){3}
。
如果字符串中只有三个单词,则为([A-Za-z,.'-]{2,15}(\s|\z)){3}
。
或\A([A-Za-z,.'-]{2,15}(\s|\z)){3}
抓住前三个字
或^([A-Za-z,.'-]{2,15}(\s|\z)){3}$
更严格。