java - 借助正则表达式从文件中读取单个或两个单词

标签 java 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(", ") 但如果你必须使用正则表达式,你可以使用这个:

正则表达式:

([^,]+)

工作正则表达式示例:

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,但正则表达式可以工作。参见示例。 :)

关于java - 借助正则表达式从文件中读取单个或两个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21643766/

相关文章:

java - 我正在尝试反转二维数组并不断收到空异常

c# - 在长字符串中查找所有以 [ 开头并以 ] 结尾的字符串部分

javascript - 使用正则表达式检查复选框

java - Arraylist 索引越界

Javascript RegExp 测试类名

在最大堆中分配字节 [] 时出现 Java OutOfMemoryError

java - Jasper Dynamic Reports - 使用 jasper reports 生成出现错误的报告

java - 父类(super class)上的 PostConstruct 注释

java - tcResultSet oim 中列类型-3 的数据类型是什么?

javascript - 简单的正则表达式问题: Replacing words with '?' s