Cleaning ASCII text files using Regular Expressions
ASCII text files can contain unnecessary units of characters that eventually are introduced during a conversion process, such as PDF-to-text conversion or HTML-to-text conversion. These characters are often seen as noise because they are one of the major roadblocks for data processing. This recipe cleans several noises from ASCII text data using Regular Expressions.
How to do it...
- Create a method named
cleanText(String)
that takes the text to be cleaned in theString
format:public String cleanText(String text){
- Add the following lines in your method, return the cleaned text, and close the method. The first line strips off non-ASCII characters. The line next to it replaces continuous white spaces with a single white space. The third line erases all the
ASCII
control characters. The fourth line strips off theASCII
non-printable characters. The last line removes non-printable characters from Unicode:text = text.replaceAll("[^p{ASCII}]",""); text = text.replaceAll("s+", " "); text = text.replaceAll("p{Cntrl}", ""); text = text.replaceAll("[^p{Print}]", ""); text = text.replaceAll("p{C}", ""); return text; }
The full method with the driver method in a class will look as follows:
public class CleaningData { public static void main(String[] args) throws Exception { CleaningData clean = new CleaningData(); String text = "Your text here you have got from some file"; String cleanedText = clean.cleanText(text); //Process cleanedText } public String cleanText(String text){ text = text.replaceAll("[^p{ASCII}]",""); text = text.replaceAll("s+", " "); text = text.replaceAll("p{Cntrl}", ""); text = text.replaceAll("[^p{Print}]", ""); text = text.replaceAll("p{C}", ""); return text; } }