首页 > 解决方案 > Java 中的正则表达式“[\\p{Punct}\\s]+”有什么作用?

问题描述

我目前是 Java 新手,希望在理解这行代码方面得到一些帮助,这个正则表达式的作用/含义是什么。

String[] s = l.split("[\\p{Punct}\\s]+");

标签: java

解决方案


split 函数将根据您在给定模式中指定的分隔字符返回一个字符串数组。

根据 Java Pattern 文档:Class Pattern,您使用的相关分隔符号是:

  • \p{Punct} 标点符号:之一!"#$%&'()*+,-./:;<=>?@[]^_`{|}~
  • \s 空白字符:[ \t\n\x0B\f\r]

因此,字符串数组将由每次在整个字符串中找到上述字符之一时分隔的所有字符串组成。

这是一个可以用来测试它的示例:

import java.util.*;

public class TestSplit {
    public static void main(String args[]) {
        String myStringTest = "test,of#the@split&separated by(space)and+punctuations";
        List<String> list = Arrays.asList(myStringTest.split("[\\p{Punct}\\s]+"));
        System.out.println(list);
    }
}

这是你得到的输出:

[test, of, the, split, separated, by, space, and, punctuations]

推荐阅读