Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.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/3/android/179.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
Java Regexp只允许字母,不允许前导空格,并且不能为空_Java_Android_Regex_Android Edittext - Fatal编程技术网

Java Regexp只允许字母,不允许前导空格,并且不能为空

Java Regexp只允许字母,不允许前导空格,并且不能为空,java,android,regex,android-edittext,Java,Android,Regex,Android Edittext,我正在尝试为Android项目编写正则表达式。与此相关的小部件是此处找到的MaterialEdit文本 此编辑文本有一个方法将RegExp验证程序链接到它。到目前为止,我终于想出了这个办法 "^[a-zA-Z\\s]*$" 如果与此模式不匹配,则显示错误。我需要将另一个addValidator链接到它来检查编辑文本是否为空,我该如何做 更新 我试过这个密码 editText.addValidator( new RegexpValidator("Must contain

我正在尝试为Android项目编写正则表达式。与此相关的小部件是此处找到的MaterialEdit文本

此编辑文本有一个方法将RegExp验证程序链接到它。到目前为止,我终于想出了这个办法

"^[a-zA-Z\\s]*$"
如果与此模式不匹配,则显示错误。我需要将另一个addValidator链接到它来检查编辑文本是否为空,我该如何做

更新 我试过这个密码

editText.addValidator(
            new RegexpValidator("Must contain letters only", "^[A-z][\\sA-z]*$")).addValidator(new RegexpValidator("Cannot be blank","^$"));

当它为空时,我得到的是“只能包含字母错误”,当我键入任何数据时,我得到的是“不能为空”

似乎你想要这样的东西

"^[a-zA-Z]+(?:\\s[a-zA-Z]+)*$"
此正则表达式不允许在开头或结尾使用空格<代码>+将上一个令牌重复一次或多次,
*
将上一个令牌重复零次或多次

  • 您的正则表达式确实允许前导空格,您的问题听起来不应该这样
  • 要禁止空白输入,您可以只使用
    +
    而不是
    *
    ,但结合对#1的修复,这将是不必要的
    类似这样的东西应该可以使用:
    ^[A-z][\sA-z]*$

    你是说
    “^[A-zA-z\\s]*$”
    ?很抱歉,我的代码中确实有这个。我不知道为什么粘贴不正确。是否允许空白字段?您的正则表达式有一个
    *
    ,可以完全为空。如果您至少需要一个字符,请使用
    +
    @Avinash Raj,否我不想允许空白字段,我想添加一个验证器来检查空白字段并显示错误。这似乎工作正常,是否可以将此表达式拆分为两个单独的表达式?例如,如果编辑文本为空且“^[A-z][\sA-z]*$”?
    ^$
    将匹配空字符串,则一个表达式将引发错误
    ^\s*$
    将匹配一个不包含任何内容的字符串,可能除了空格
    \S
    将匹配至少包含一个非空白字符的任何字符串。