Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.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正则表达式在字符之前或之后匹配空格_Java_Regex_Pattern Matching_Whitespace_Wildcard - Fatal编程技术网

Java正则表达式在字符之前或之后匹配空格

Java正则表达式在字符之前或之后匹配空格,java,regex,pattern-matching,whitespace,wildcard,Java,Regex,Pattern Matching,Whitespace,Wildcard,我尝试使用正则表达式验证输入字段 这个问题是的延续,但我犯了一个错误,问题有点改变,所以我创建了一个新问题 这是我的java正则表达式: ^(?:\?*[a-zA-Z\d]){2}[a-zA-Z\d?]*\*?$ 我想说的是: 最少2个字母数字字符(除“?”和“*”外) “*”只能在字符串末尾出现一次 “?”可以多次出现 开头没有空格 在“?”或“*”之前或之后没有空格 例如: abcd=正常 ?bcd=正常 ab???=嗯 ab*=正常 ab?*=正常 ??cd=正常 ab cd=正

我尝试使用正则表达式验证输入字段

这个问题是的延续,但我犯了一个错误,问题有点改变,所以我创建了一个新问题

这是我的java正则表达式:

^(?:\?*[a-zA-Z\d]){2}[a-zA-Z\d?]*\*?$

我想说的是:

  • 最少2个字母数字字符(除“?”和“*”外)
  • “*”只能在字符串末尾出现一次
  • “?”可以多次出现
  • 开头没有空格
  • 在“?”或“*”之前或之后没有空格
例如:
  • abcd=正常
  • ?bcd=正常
  • ab???=嗯
  • ab*=正常
  • ab?*=正常
  • ??cd=正常
  • ab cd=正常
  • *ab=不正常
  • a?b=不正常
  • ??=不好
  • ab?cd=不正常
  • ab?d=不正常
  • ab*=不正常
  • abcd=不正常(开头有空格)
正如我在第一个问题中所问的,现在我的正则表达式中不允许有任何空格,但这不是我想要的,我有点迷路了。你能帮我一下吗?

你可以使用

^(?!\s)(?!.*\s[*?])(?!.*[*?]\s)(?:[?\s]*[a-zA-Z0-9]){2}[a-zA-Z0-9?\s]*\*?$

用法说明:如果与Java的
.matches()
方法一起使用,则可以从模式中删除
^
$
。记住在字符串文本中加倍转义反斜杠

详细信息

  • ^
    -字符串的开头
  • (?!\s)
    -右边(字符串开头)不允许有空格
  • (?!.*\s[*?])
    -在
    *
    之前的任何0+字符后,尽可能多的空格都不允许
  • (?!.[*?]\s)
    -在
    *
    之后,任何0+字符后都不允许有空格,空格的数量应尽可能多
  • (?:[?\s]*[a-zA-Z0-9]){2}
    -两个
    • [?\s]*
      -0或更多
      或/和空格
    • [a-zA-Z0-9]
      -字母数字字符
  • [a-zA-Z0-9?\s]*
    -0个或更多字母、数字、
    或空格
  • \*?
    -可选的
    字符
  • $
    -字符串的结尾

  • ab
    (中间有空格)可以吗?是的(a?b=ok)(ab cd=ok)(a bcd=ok)(a b=ok)一个或多个空格是可以的,但不是正好在“*”或“?”之前或之后,一开始也不是很感谢你!再好不过了!