Java Regexp只允许字母,不允许前导空格,并且不能为空
我正在尝试为Android项目编写正则表达式。与此相关的小部件是此处找到的MaterialEdit文本 此编辑文本有一个方法将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
"^[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
将匹配至少包含一个非空白字符的任何字符串。