Java:如何删除字符串中除a-z、数字和德语字符以外的所有字符
我正在开发一个SpringMVC应用程序,目前我们正在其中集成OCR功能。光学字符识别(OCR)有一个习惯,即在错误检测和背景中有图像时,会抛出野生字符。经过图像处理后,我们获得了相当好的数据,但仍然存在一些错误。我们希望按如下方式处理输出Java:如何删除字符串中除a-z、数字和德语字符以外的所有字符,java,regex,parsing,Java,Regex,Parsing,我正在开发一个SpringMVC应用程序,目前我们正在其中集成OCR功能。光学字符识别(OCR)有一个习惯,即在错误检测和背景中有图像时,会抛出野生字符。经过图像处理后,我们获得了相当好的数据,但仍然存在一些错误。我们希望按如下方式处理输出 从输出字符串中删除所有单个字符 删除除A-Z、A-Z、德语字符以外的所有字符,即äöü、ÄäÜ、ß 空格和数字应保持不变 代码: File imageFile = new File(fileLocation); Buffered
File imageFile = new File(fileLocation);
BufferedImage img = ImageIO.read(imageFile);
BufferedImage blackNWhite = new BufferedImage(img.getWidth(),img.getHeight(),BufferedImage.TYPE_BYTE_BINARY);
Graphics2D graphics = blackNWhite.createGraphics();
graphics.drawImage(img, 0, 0, null);
String blackAndWhiteImage = zipLocation + String.valueOf(new BigInteger(130, random).toString(32))+".png";
File outputfile = new File(blackAndWhiteImage);
ImageIO.write(blackNWhite, "png", outputfile);
ITesseract instance = new Tesseract();
// Point to one folder above tessdata directory, must contain training data
instance.setDatapath("/usr/share/tesseract-ocr/");
// ISO 693-3 standard
instance.setLanguage("deu");
String result = instance.doOCR(outputfile);
//System.out.println(result);
result = result.replaceAll("\\P{ASCII}","");
System.out.println("Result is "+result);
return result;
多谢各位
更新
正则表达式留下的通配符:
|
| '(°Ul")
_} °
=# '
( )
...................................__+_......_._._.__._._._+._._.
广告1.result.replaceAll(\\s[a-zA-ZöäÄüÜß]\\s,”)代码>
广告2.
result.replaceAll(“^a-zA-ZöÖäÄüÜß]”,”)代码>这是我最后用来解决这个问题的正则表达式:
result = result.replaceAll("[^a-zA-Z0-9öÖäÄüÜß@\\s]", "");
多谢各位 regex应该是[öÖäÄÜßa-zA-Z]
我认为第1步还应该删除数字,并保留其中一个空格。类似于\\s[a-zA-Z\döäääääÜß]\b的内容也适用于最后一个字符后面没有空格的句子结尾。谢谢,我不想删除数字。我应该用2号还是1号?谢谢你。@Weareberg你必须同时使用这两种。这是一个两步过程。@Xentros first正则表达式不适用于“a b c”-它只删除“b”。它还删除了数字和空格。我不想删除数字和空格。我的错误,当创建这样的帖子,编辑。非常感谢。