有 Java 编程相关的问题?

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

JAVAutil。正则表达式。PatternRegexSyntaxException

我想在以下分隔符的基础上生成令牌 " \t\n\r,?;.:/!<>%*+=()&\"{}[]-_\'"

我使用了StringTokenizer和以下代码,但它们没有给出正确的输出。事实上,下面的代码也会引发异常

String [] multiTokenizer = content.split(" \t\n\r,?;.:/!<>%*+=()&\"{}[]-_\'");

我尝试过放置\\*和做其他建议的事情,但无法解决问题

有人能告诉我为什么会出问题,在哪里

我希望令牌具有非分隔符的属性,无论它们是同时存在还是单独存在都无关紧要


共 (1) 个答案

  1. # 1 楼答案

    您需要使用字符类才能拆分以下任何字符:

    String [] multiTokenizer = content.split("[ \\t\\n\\r,?;.:/!<>%*+=()&\"{}\\[\\]_'-]+");
    
    • 请注意,必须将未转义连字符保留在字符类的第一个或最后一个位置,否则将其转义
    • 在Java正则表达式中,每个转义都需要双重转义
    • 最好使用量词+,以便能够在这些特殊字符多次出现时进行拆分