作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在从字符串中删除特定的字符串。首先我通过文件阅读器读取文本文件,然后我将文件的内容存储到字符串数组中并从字符串数组中删除一些特定的字符串
我的输入文本是:
:VL
15
n
3 c
09:0.023
15th:0.023
1987:0.025
1st:0.025
2:0.013
2.0:0.043
2003:0.056
2005:0.056
Top Terms:
Weight :
props
optional
: Point:
1.0:
15th:0.068
现在我正在阅读此文本并将其存储到字符串数组中:String [] Result
我的代码:
for(String t1: Result){
Pattern = Pattern.compile("\\b:[0-9]\\b");
matcher = pattern.matcher(t1);
if(matcher.find()){
System.out.println(t1);
}
和输出我得到:
09:0.023
15th:0.023
1987:0.025
1st:0.025
2:0.013
2.0:0.043
2003:0.056
2005:0.056
Top Terms:
Weight :
15th:0.068
但是我不想要这个输出。我的输出应该是这样的:
09:0.023
15th:0.023
1987:0.025
1st:0.025
2:0.013
2.0:0.043
2003:0.056
2005:0.056
15th:0.068
给我一些关于我必须应用什么正则表达式才能获得此输出的想法。
最佳答案
我怀疑
2005:0.056
Top Terms:
Weight :
实际上是一行......不知何故。
那个正则表达式应该(只)匹配你有一个由单个数字组成的“单词”的行。
我猜你确实知道这一点(而且你“忘了提及”)。
如果你想匹配这些:
2005:0.056
15th:0.023
1st:0.023
2nd:0.023
3rd:0.023
但不是这些:
2005:0.056 Top Terms: Weight :
1.0:
然后你需要一个更严格的正则表达式,和 match()
而不是 find;例如
pattern = Pattern.compile(
"\\s*[0-9]+(st|nd|rd|th|(\\.[0-9]+))?:[0-9]+\\.[0-9]+\\s*");
for (String t1: Result) {
matcher = pattern.matcher(t1);
if (matcher.match()) {
System.out.println(t1);
}
}
但此时我猜测您对“有效”行的实际标准是什么。
关于java - 如何从java中的String中删除特定的String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18328474/
我是一名优秀的程序员,十分优秀!