检查字符串在java中使用正则表达式包含空格以及一些其他字符序列

时间:2012-02-18 12:58:50

标签: java regex

使用正则表达式来检查字符串是否包含空格。 我的正则表达式是:^\\s+$

例如,如果我的字符串是my name,那么正则表达式匹配应该返回true。 但只有当我的字符串只包含空格而没有其他字符时才返回true。

如何检查字符串是否包含空格或制表符,或者在某些字符串的/ start / end之间回车符。

3 个答案:

答案 0 :(得分:5)

^(.*\s+.*)+$似乎对我有用。只要字符串中至少有一个空格,就接受任何内容。这将匹配整个字符串。

如果您只想检查是否存在空格,则只需使用\s,而字符串中没有任何开头或结尾标记。不同之处在于,这只会匹配各个空格。

答案 1 :(得分:2)

你的正则表达式不正确。

  1. 这是一个表示正常表达的字符串。 (正如tchrist指出的那样)
  2. 使用Pattern.compile()获得的相应模式仅匹配从开头到结尾只包含一个或多个空白字符的字符串。因此匹配字符串只包含空白字符。
  3. 尝试为Pattern.compile()创建此字符串:

    "\\s+"
    

    不同之处在于没有锚点“^”和“$”,空白字符周围可能还有其他字符。空格字符可以在字符串中的任何位置。

    使用此模式字符串时,空格字符必须位于开头:

    "^\\s+"
    

    这里的空格字符序列必须在最后:

    "\\s+$"
    

答案 2 :(得分:0)

使用org.apache.commons.lang.StringUtils.containsAny()。请参阅http://commons.apache.org/lang/api-3.1/org/apache/commons/lang3/StringUtils.html