我想过滤文本,只留下字母(a-z和A-Z)。这似乎是很容易,以下是这样的How to filter a Java String to get only alphabet characters?在Java中使用正则表达式的奇怪行为
String cleanedText = text.toString().toLowerCase().replaceAll("[^a-zA-Z]", "");
System.out.println(cleanedText);
的问题,它的输出是空的,除非我改变了正则表达式,增加一个字符,例如我已经尝试检查它是否与普通的正则表达式一起工作(不使用由Java中的String对象给出的方法ReplaceAll),但我有完全相同的问题。
任何想法可能是这种奇怪行为的来源?
我有一个txt文件,我使用BufferedReader读取。我将每行添加到一个长字符串,并将之前发布的代码应用于此。整个代码如下:
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.lang.StringBuffer;
import java.util.regex.*;
public class Loader {
public static void main(String[] args) {
BufferedReader file = null;
StringBuffer text = new StringBuffer();
String str;
try {
file = new BufferedReader(new FileReader("text.txt"));
} catch (FileNotFoundException ex) {
}
try
{
while ((str = file.readLine()) != null) {
text.append(str);
}
String cleanedText = text.toString().toLowerCase().replaceAll("[^:a-z]", "");
System.out.println(cleanedText);
} catch (IOException ex) {
}
}
}
的文本文件是一个正常物品,我想删除所有内容(包括空格),这不是一个字母。摘录如下:“[16]自由软件基金会(FSF)始于1985年,意指”免费“一词意指自由发布”
你可能想'[^ A-ZA-Z描述]'(用空格) –
请添加一些例子,顺便说一句:当你之前调用toLowerCase时,你不需要AZ ;-) – Betlista
适用于我,我猜这是输入错误。 – Antoniossss