gpt4 book ai didi

java - 如何在java中使用正则表达式删除某些字符

转载 作者:太空宇宙 更新时间:2023-11-04 13:37:05 24 4
gpt4 key购买 nike

一般问题是:如何解析字符串并消除标点符号并替换其中的一些标点符号?

我正在尝试修改一些输入文本。情况是我有一个普通的文本文件,带有标点符号,我想把它们全部删除。如果符号是 . ! ? ...我想用“”字符串替换它。

我从未使用过正则表达式,因此我尝试了字符串比较,但显然它不足以满足所有情况。如果有两个标点符号我就会遇到麻烦;就像文本“第二天(4ht)。”,当我有)。在一起。

例如,根据给定的输入,我期望得到以下结果:

Input :  [...] at it!" This speech caused
Excpected output : at it <s> this speech caused

代码中的每个单词都会添加到 ArrayList 中,因为我稍后需要使用它。

非常感谢!

FileInputStream fileInputStream = new FileInputStream("TEXT.txt");
InputStreamReader inputStreamReader = new InputStreamReader(
fileInputStream, "UTF-8");
BufferedReader bf = new BufferedReader(inputStreamReader);

words.add("<s>");
String s;
while ((s = bf.readLine()) != null) {
String[] var = s.split(" ");

for (int i = 0; i < var.length; i++) {
if (var[i].endsWith(",") || var[i].endsWith(")")
|| var[i].endsWith("(") || var[i].endsWith(":")
|| var[i].endsWith(";") ||var[i].endsWith("'")) {
var[i] = var[i].substring(0, var[i].length() - 1);
words.add(var[i].toLowerCase());
} else if ( var[i].startsWith("'")) {
var[i] = var[i].substring(1, var[i].length() );
words.add(var[i].toLowerCase());
} else if (var[i].endsWith(".") || var[i].endsWith("...")
|| var[i].endsWith("!") || var[i].endsWith("?")) {
var[i] = var[i].substring(0, var[i].length() - 1);
words.add(var[i].toLowerCase());
words.add("<s>");
} else {
words.add(var[i].toLowerCase()); //
// System.out.println("\n neu eingelesenes Wort: " + var[i]);
}}
}

最佳答案

首先使用正则表达式过滤掉标点符号,然后按空格分隔并将结果添加到列表中:

FileInputStream fileInputStream = new FileInputStream("TEXT.txt");
InputStreamReader inputStreamReader = new InputStreamReader(
fileInputStream, "UTF-8");
BufferedReader bf = new BufferedReader(inputStreamReader);
words.add("<s>");
String s;
while ((s = bf.readLine()) != null) {
s = s.replaceAll("[^a-zA-Z ]", ""); // replace all non-word/non-space characters with an empty string
String[] var = s.split(" ");
words.addAll(var);
}

关于java - 如何在java中使用正则表达式删除某些字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31594203/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com