Java正则表达式,如何分割点,空格,并保持引用的单词在一起

时间:2017-03-01 02:37:39

标签: java regex split

我想将我的字符串分成点,空格,并将引用的单词放在一起。例如,我说:

This "majestic world" is truly.awesome

它应该导致:

This
majestic world
is
truly
awesome 

现在,我到目前为止的正则表达式只是myString.split("\\. | ")。我知道 ("[^\\s\"']+|\"([^\"]*)\"|'([^']*)'")应该在空格上分开,并将引用的单词放在一起。现在,我不知道如何在那里加入点逃脱,而且坦率地说,正则表达式与在你的背后用双手绑在一起翻转汉堡一样有意义。

编辑:

以下是我想要一个更好的正则表达式的原因,因为为了让我把事情保持在引号内,我必须做以下事情:

if(listOfLists.get(i).get(j).equalsIgnoreCase("INSERT")) {
                        String insertInto = "";
                        boolean buildingString = false;
                        int k = 0;
                        while(k < listOfLists.get(i).size()) {
                            if(listOfLists.get(i).get(k).endsWith("\"")) {
                                buildingString = false;
                                insertInto += listOfLists.get(i).get(k);
                                break;
                            }
                            if(listOfLists.get(i).get(k).startsWith("\"") || buildingString) {
                                buildingString = true;
                                insertInto += listOfLists.get(i).get(k) + " ";
                            }
                            k++;
                        }
                        System.out.println("k is: " + k + " message is: " + insertInto);
                        dbCommands.appendToTable(listOfLists.get(i).get(k + 2), listOfLists.get(i).get(k + 3), insertInto);

我正在解析的文件的命令如下:

INSERT“John Smith”INTO college.students

1 个答案:

答案 0 :(得分:1)

这个正则表达式可以帮到你,但你仍然需要在第二步中删除引号:

{'Group2': 8888, 'Group1': 9999, 'teams': [{'team1': 12345}, {'team2': 12341}, {'team3': 46563}, {'team4': 23478}]}

IE:

... 
ingests:
  - timestamp: 1970-01-01T00:00:00.000Z
    id: OverheadDistributionLineSegment_31168454