Java 正则表达式只允许字母,不能有前导空格,并且不能为空
Java Regexp allow only letters, no leading whitespace, and cannot be empty
我正在尝试为 Android 项目编写正则表达式。这涉及的小部件是在此处找到的 MaterialEditText https://github.com/rengwuxian/MaterialEditText
此编辑文本有一种将 RegExp 验证器链接在一起的方法。到目前为止,我设法想出了这个。
"^[a-zA-Z\s]*$"
当它与此模式不匹配时,它会显示错误。我需要将另一个 addValidator 链接到它以检查编辑文本是否为空,我该怎么做?
更新
我试过这个代码
editText.addValidator(
new RegexpValidator("Must contain letters only", "^[A-z][\sA-z]*$")).addValidator(new RegexpValidator("Cannot be blank","^$"));
当它为空时,我得到 "Must contain letters only error",当我输入任何数据时,我得到 "Cannot be blank"
看来你想要这样的东西,
"^[a-zA-Z]+(?:\s[a-zA-Z]+)*$"
此正则表达式不允许在开头或结尾有空格。 +
重复前一个标记一次或多次,其中 *
将重复前一个标记零次或多次。
- 您的正则表达式确实允许前导空格,但您的问题听起来不应该。
- 要禁止空白输入,您可以只使用
+
而不是 *
,但结合针对 #1 的修复,这将不是必需的。
像这样的东西应该可以工作:^[A-z][\sA-z]*$
我正在尝试为 Android 项目编写正则表达式。这涉及的小部件是在此处找到的 MaterialEditText https://github.com/rengwuxian/MaterialEditText
此编辑文本有一种将 RegExp 验证器链接在一起的方法。到目前为止,我设法想出了这个。
"^[a-zA-Z\s]*$"
当它与此模式不匹配时,它会显示错误。我需要将另一个 addValidator 链接到它以检查编辑文本是否为空,我该怎么做?
更新
我试过这个代码
editText.addValidator(
new RegexpValidator("Must contain letters only", "^[A-z][\sA-z]*$")).addValidator(new RegexpValidator("Cannot be blank","^$"));
当它为空时,我得到 "Must contain letters only error",当我输入任何数据时,我得到 "Cannot be blank"
看来你想要这样的东西,
"^[a-zA-Z]+(?:\s[a-zA-Z]+)*$"
此正则表达式不允许在开头或结尾有空格。 +
重复前一个标记一次或多次,其中 *
将重复前一个标记零次或多次。
- 您的正则表达式确实允许前导空格,但您的问题听起来不应该。
- 要禁止空白输入,您可以只使用
+
而不是*
,但结合针对 #1 的修复,这将不是必需的。
像这样的东西应该可以工作:^[A-z][\sA-z]*$