借助regex从文件中读取一两个单词



我有一个包含以下内容的txt文件:

one two, three, four five, six seven, eight, nine, ten

你能帮我写一个或两个单词(用空格)的正则表达式吗?

需要:

stroke[0] = "one two",
stroke[1] = "three",
stroke[2] = "four five",
stroke[3] = "six seven",
stroke[4] = "eight",
...

我的代码:

Scanner sc = new Scanner(getResources().openRawResource(R.raw.skills));
while (sc.hasNext()) {
stroke[n] += sc.next("\w|\w\s\w");
n++;
}

您可能只应该使用.split(", "),但如果必须使用regex,则可以使用以下内容:

正则表达式:

([^,]+)

工作正则表达式示例:

http://regex101.com/r/cR0sV4

Java:

**注意,我对java语法没有经验,但它会是这样的。。(如果这不是完全正确的java语法,请原谅我。)

String str = "one two, three, four five, six seven, eight, nine, ten";
Pattern pattern = Pattern.compile("([^,]+)");
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
System.out.println(trim(matcher.group()));
}

注意trim()以删除前面的任何空白。

类似的。。再说一遍,我不知道java,但是regex是有效的。参见示例。:)

String str = {one two, three, four five, six seven, eight, nine, ten}
String[] string = str.split(",\s+");

如果约定是具有此格式的文件,那么如果在扫描仪上使用useDelimiter("\s*,\s*)(如),则可以获得相同的结果

Scanner sc = new Scanner(getResources().openRawResource(R.raw.skills)).useDelimiter("\s*,\s*");

最新更新