如何在Java中为分隔符指定多个模式

时间:2011-08-02 16:02:03

标签: java design-patterns java.util.scanner delimiter

所以我有一个方法,使用一个删除“null(U)”引用的分隔符将一个文件复制到另一个文件,输入文件看起来像...

C:\Documents and Settings\workspace\Extracted Items\image2.jpeg;image0;null(U) keyword1, keyword2, keyword3, keyword4,
C:\Documents and Settings\workspace\Extracted Items\image3.jpeg;image1;null(U) keyword1, keyword2, keyword3, keyword4,
C:\Documents and Settings\workspace\Extracted Items\image4.jpeg;image2;null(U) keyword1, keyword2, keyword3, keyword4,
C:\Documents and Settings\workspace\Extracted Items\image5.jpeg;image3;null keyword1, keyword2, keyword3, keyword4,

...输出文件看起来像......

C:\Documents and Settings\workspace\Extracted Items\image2.jpeg;image0;keyword1, keyword2, keyword3, keyword4,
C:\Documents and Settings\workspace\Extracted Items\image3.jpeg;image1;keyword1, keyword2, keyword3, keyword4,
C:\Documents and Settings\workspace\Extracted Items\image4.jpeg;image2;keyword1, keyword2, keyword3, keyword4,
C:\Documents and Settings\workspace\Extracted Items\image5.jpeg;image3;null keyword1, keyword2, keyword3, keyword4,

关于我的分隔符的小块代码,我有......

Scanner reader = new Scanner(inputFile);
reader.useDelimiter("null\\(U\\) ");

然而,我想知道,如果我想指定分隔符应该寻找的多个模式(即除了“null(U)”之外,我想添加“null”),我将如何去做?我在网上看到了一些例子,但我仍然不确定分隔符如何区分各种模式。非常感谢任何建议!

1 个答案:

答案 0 :(得分:3)

您可以使用正则表达式并使用以下内容创建模式:

Pattern p = Pattern.compile("your regex here");

然后将该模式提供给useDelimiter(p)方法。

正则表达式可能类似于(null\\s)|(null\\(U\\)\\s)