正则表达式允许在String内容中使用head和trail空格

时间:2016-10-25 12:25:22

标签: java regex

我有这个正则表达式\\s.*\\s|\\s,它不允许我在字符串的开头或/和结尾有一个空格(可选,任意数量的空格)。

String regex = "\\s.*\\s|\\s";
System.out.println("Hello World".matches(regex)); -> FALSE
System.out.println(" Hello World ".matches(regex)); -> TRUE
System.out.println(" Hello World".matches(regex)); -> FALSE
System.out.println("Hello World ".matches(regex)); -> FALSE

请帮忙,告诉我在我的正则表达式中我出错的地方

1 个答案:

答案 0 :(得分:0)

以下模式对我有用:

@Test
public void testRegex() {
    final String regex = "\\s*.+\\s*";
    assertTrue(Pattern.matches(regex, "Hello World"));
    assertTrue(Pattern.matches(regex, " Hello World"));
    assertTrue(Pattern.matches(regex, " Hello World "));
    assertTrue(Pattern.matches(regex, "Hello World "));
    assertTrue(Pattern.matches(regex, "  "));
}

*字符匹配前面的值的0或更多,在本例中为空格(\ s)。因此,正则表达式的正面和结尾处的\ s *允许您在开头或结尾处使用可选的空格。的。匹配任何字符,+表示一个或多个,所以。+允许你的空格之间的中间。

正如您将注意到的,我的正则表达式“”是完全可以接受的匹配。为了更好地满足您的需求,我认为我们需要了解您的更多要求。