我是Java新手,请多多包涵。您可以在下面看到我的代码。它应该做的是从文本文件中读取第3列,如果此列是S ** ei或P *** ei,它将返回该行的第一个单词。但是我的问题是“如何使*从a到z匹配任何字符”?我听说过正则表达式,但还没有真正使用它们。任何帮助将非常感激。谢谢。
package test;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public class moja {
public static void main(String[] args) {
try {
File file = new File("SloveneLexicon.txt");
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
StringBuffer stringBuffer = new StringBuffer();
String vrstica;
while ((vrstica = bufferedReader.readLine()) != null) {
String s = vrstica;
String[] dobi_besedo_v_vrstici = s.split("\\s+");
String prva_beseda = dobi_besedo_v_vrstici[0];
String tretja_beseda = dobi_besedo_v_vrstici[2];
if (tretja_beseda =="S**ei"){
System.out.println(prva_beseda);
if (tretja_beseda =="P***ei")
System.out.println(prva_beseda);
}
}
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
最佳答案
Pattern p = Pattern.compile("Pi[a-zA-z]{3}ei");
if(p.matcher(input).matches()){
This will work for 3 any letters (big or small)
}
“ Pi [a-zA-z] {3} ei” // 3个大小字母
“ Pi [a-zA-z] {1,3} ei” // 1-3个大小的字母
“ Pi [a-zA-z] + ei” //至少一个字母
“ Pi [a-zA-z] * ei” //零个或多个字母
只要记住将Pattern放在while循环之外,就应该定义一次并使用多次