我在java中解析文件。我有这样几行:
2756 4 3179
3076 4 3179
3142 4 3179
3179 4 3179
在我的档案中。
我正在解析我的java文件。我想编写正则表达式来排除仅包含数字和空格的行。
我该怎么做?
答案 0 :(得分:0)
您需要这个正则表达式: [^\\d\\s]+[^\\n]
(如果您使用的是模式匹配器类)
我测试了下面的程序:
package com.stackoverflow.q20389463;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegExForNumbersAndSpaces {
public static void main(String[] args) {
StringBuilder builder = new StringBuilder();
builder.append("dummy text"); // Put some dummy text
String line = System.getProperty("line.separator"); // In windows it is \n
builder.append(line);
builder.append("2756 4 3179");
builder.append(line);
builder.append("3076 4 3179");
builder.append(line);
builder.append("another one");
builder.append(line);
builder.append("3142 4 3179");
builder.append(line);
builder.append("3179 4 3179");
builder.append(line);
builder.append("and another one");
System.out.println("SOURCE --BEGIN--"
+ line + builder
+ line + "SOURCE --END--");
Pattern pattern = Pattern.compile("[^\\d\\s]+[^\\n]", Pattern.MULTILINE);
Matcher matcher = pattern.matcher(builder.toString());
System.out.println(line + "OUTPUT --BEGIN--");
while (matcher.find()) {
System.out.print(matcher.group());
}
System.out.println(line + "OUTPUT --END--");
}
}
并输出以下内容:
SOURCE --BEGIN--
dummy text
2756 4 3179
3076 4 3179
another one
3142 4 3179
3179 4 3179
and another one
SOURCE --END--
OUTPUT --BEGIN--
dummy text
another one
and another one
OUTPUT --END--