以下是示例文本
|英语单词列表。评论从竖线开始。每一站 |字是在一行的开头。
|下面的许多表格都非常罕见(例如“你自己”)但包括在内 |完整性。
| PRONOUNS FORMS
| 1st person sing
我|主题,当然总是大写
我|对象
我的|所有格形容词
我想删除栏右侧发生的所有文字,包括栏本身,我在正则表达式上没什么困难。
以下是我一直在尝试的代码
FileReader reader = new FileReader("C:\\Users\\Masood\\Desktop\\IR\\Programming\\Material\\stopwords.txt");
StringBuilder sb = new StringBuilder();
BufferedReader br = new BufferedReader(reader);
String line;
String source2 = null;
while ( (line=br.readLine()) != null) {
line.replaceAll("[|(.*)]","");
sb.append(line);
}
String source = sb.toString();
System.out.println(source);
我输出的是字符串“我是我的”,其他一切都应该消失
答案 0 :(得分:2)
String
是不可变的,因此您需要将replaceAll
值分配给line
本身。|
,因为|
本身就是正则表达式(\\|
)|
并只是替换它代码(靠近regex
):
String line = "i | subject, always in upper case of course";
line = line.replaceAll("\\|(.*)","");
System.out.println(line);
输出:
i
正则表达式解释: http://regex101.com/r/gY6wE1
答案 1 :(得分:1)
这个正则表达式与|后面的部分匹配包括|。
\|.+$
答案 2 :(得分:0)
这是一个你可以适应你的情况的例子,使用substring方法并传递beggining索引和垂直条的出现的索引。
public static void main(String[] args) {
String a = "i | subject, always in upper case of course";
String b = "me | object";
String c = "my | possessive adjective";
System.out.println(a.substring(0, a.indexOf('|')));
System.out.println(b.substring(0, b.indexOf('|')));
System.out.println(c.substring(0, c.indexOf('|')));
}
输出:
i
me
my