正则表达式,逐字符读取(java)
对不起我的英语。逐字读取文件。我需要输出一个符合表达式的字符串,在本例中为正则表达式,逐字符读取(java),java,arrays,regex,string,Java,Arrays,Regex,String,对不起我的英语。逐字读取文件。我需要输出一个符合表达式的字符串,在本例中为([a-zA-Z0-9]){0,}。我就是这样做的:如果发生换行,则对正则表达式进行检查。为什么它不起作用 UDP代码: public static void main(String[] args) throws FileNotFoundException, IOException { int endWord = wordToFind.length(); int startWor
([a-zA-Z0-9]){0,}
。我就是这样做的:如果发生换行,则对正则表达式进行检查。为什么它不起作用
UDP代码:
public static void main(String[] args) throws FileNotFoundException, IOException {
int endWord = wordToFind.length();
int startWord = 0;
String myWord = "";
int numbLine = 1;
char[] barray = new char[1024];
StringBuilder stringB = new StringBuilder();
Pattern p = Pattern.compile("([a-zA-Z0-9]){0,}");
try(BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream("text.txt"))))
{
startTime = System.currentTimeMillis();
int value;
while((value = reader.read(barray, 0, barray.length)) != -1) {
for(int i = 0; i < value; i++) {
stringB.append(barray[i]);
if( Character.toString(barray[i]).equals("\n") ) {
Matcher m = p.matcher(stringB.toString());
if(m.matches()) {
finwWordLine = true;
}
if(finwWordLine) {
System.out.println(numbLine + ": " +stringB.toString());
}
stringB.delete(0, stringB.length());
finwWordLine = false;
numbLine++;
}
}
}
reader.close();
}catch(Exception e){
System.out.println("Error : "+e);
}
}
publicstaticvoidmain(字符串[]args)抛出FileNotFoundException、IOException{
int endWord=wordToFind.length();
int startWord=0;
字符串myWord=“”;
int numbLine=1;
char[]barray=新字符[1024];
StringBuilder stringB=新的StringBuilder();
模式p=Pattern.compile(([a-zA-Z0-9]){0,});
try(BufferedReader=new BufferedReader(new InputStreamReader(new FileInputStream(“text.txt”)))
{
startTime=System.currentTimeMillis();
int值;
while((value=reader.read(barray,0,barray.length))!=-1){
for(int i=0;i
UPD text.txt
一行
双线
三线
asd asdas dasd asd
阿斯达斯达斯德
五行
一个
asdasd asd asd asd asd请尝试以下正则表达式:
[a-zA-Z0-9]*
你想达到什么目标?具有预期输出的示例会更好。您的示例缺少少量的
}
,并且缺少您希望用要实现的输出解析的输入示例。请回答您的问题,并提供简短但完全可编译且可运行的示例,让我们重现您的问题。@asdascaedfa您可以发布“text.txt”文件的内容吗?@asdascascaedfa您希望匹配哪些行?您不想匹配哪些行?@asdascascaedfa在您的文本文件中,您想匹配哪些行?(第一行,第三行,第三行…@asdascascaedfa你想匹配什么?我想把这些行带到相同正则表达式的地方。我尝试我的代码我在这里尝试做Matcher m=p.Matcher(stringB.toString())代码>如果存在匹配项,则输出string@asdascascaedfa在您的帖子中有一个text.txt文件的示例。在这个文件的5行中,哪些是感兴趣的?我的正则表达式Pattern p=Pattern.compile(([a-zA-Z0-9]){0,})
理论上,我应该带一个带一个单词的字符串,它的行包含单词one(4行),如果我喜欢这个“([a-zA-Z0-9]){0,}([\\s]){0,}”
,也就是说它可以是一个空格([\\s]){0,}