有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (1) 个答案

  1. # 1 楼答案

    您需要将符号放入字符类中,并在那里转义[]\

    str.split("[!\\[,?.\\\\_'@+\\]]")
    

    [!\\[,?.\\\\_'@+\\]]字符类匹配指定集中的单个字符(![,?.\_'@+,或]

    注意_不是一个特殊的regex元字符,不需要(也不应该)转义。如果还需要向character类添加\字符,则需要使用4个反斜杠来匹配输入中的文字\

    请注意,每当需要向这个正则表达式添加连字符时,都应该将其放在字符类的开头或结尾。请参阅Splitting string using multiple delimiters Java,它详细介绍了如何在Java正则表达式中匹配字符类中的连字符的问题

    如果要删除结果数组中的任何空元素,请替换字符串开头的所有拆分字符,并对字符类应用+(一个或多个出现)量词(以下是更新的答案,其中在字符类中添加了空格):

    str.replaceAll("^[!\\[,?.\\\\_'@+\\]\\s]+, "").split("[!\\[,?.\\\\_'@+\\]\\s]+")