java 字符串正则
我从一个文件中按行读取,读取的文件保存到一个StringBuffer对象sBuffer中,读取的内容有很多,比如dfgsdfgsCoordinatePath=C:/She...
我从一个文件中按行读取,读取的文件保存到一个StringBuffer对象sBuffer中,读取的内容有很多,比如
dfgsdfgs
CoordinatePath=C:/ShelfAOI.txt
asfjkadf
asdf
但是我只想要期中的
CoordinatePath=C:/ShelfAOI.txt
应该怎么从sBuffer中截取出来呢?
我不知道是不是我表达不清晰,下面两位感觉有点答非所问啊,要正则!!!!!我自己写了个,感觉有点罗嗦,望指点
sBuffer.toString().split("CoordinatePath=")[1].split("\n")[0] 展开
dfgsdfgs
CoordinatePath=C:/ShelfAOI.txt
asfjkadf
asdf
但是我只想要期中的
CoordinatePath=C:/ShelfAOI.txt
应该怎么从sBuffer中截取出来呢?
我不知道是不是我表达不清晰,下面两位感觉有点答非所问啊,要正则!!!!!我自己写了个,感觉有点罗嗦,望指点
sBuffer.toString().split("CoordinatePath=")[1].split("\n")[0] 展开
4个回答
展开全部
确定条件:
你要的是以"CoordinatePath="开头,以"\n"(换行符)结尾的字符串
代码:
//(CoordinatePath=)表示以"CoordinatePath="开头([\\S]*)表示非空白字符组成的字符串
Pattern keyPattern = Pattern.compile("(CoordinatePath=)([\\S]*)");
//对StringBuffer进行匹配
Matcher keyMatcher = keyPattern.matcher(sBuffer);
if(keyMatcher.find()) {
//找到之后的字符串就是要求的字符串
String value = keyMatcher.group();
}
PS:如果楼主想要的是key=value结构的字符串,可以将上面的代码封装到方法中,输入需要StringBuffer sBuffer和String key,将正则表达式换成key+"(=)([\\S]*)",返回String value就行
要简单的话,就像楼主写的:
sBuffer.toString().split("(CoordinatePath=)([\\S]*)")[0]
你要的是以"CoordinatePath="开头,以"\n"(换行符)结尾的字符串
代码:
//(CoordinatePath=)表示以"CoordinatePath="开头([\\S]*)表示非空白字符组成的字符串
Pattern keyPattern = Pattern.compile("(CoordinatePath=)([\\S]*)");
//对StringBuffer进行匹配
Matcher keyMatcher = keyPattern.matcher(sBuffer);
if(keyMatcher.find()) {
//找到之后的字符串就是要求的字符串
String value = keyMatcher.group();
}
PS:如果楼主想要的是key=value结构的字符串,可以将上面的代码封装到方法中,输入需要StringBuffer sBuffer和String key,将正则表达式换成key+"(=)([\\S]*)",返回String value就行
要简单的话,就像楼主写的:
sBuffer.toString().split("(CoordinatePath=)([\\S]*)")[0]
展开全部
我觉得你可以在sbuffer读取后几条代码,用来检索你要的信息,比如你把你信息的特征填入,然后每次读完代码后就进行检索是否符合该特征,如果可以就写入,如果不可以直接读下一行代码。这样是要知道你的每一行的特征,如果你知道你要的信息有几句话,还可以用几个循环读读几句后再停止写入,这样就只需要知道开头的就行了。还有许多扩展,你想想吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果 CoordinatePath=C:/ShelfAOI.txt 是单独的一行 那就好办了。
String 中有个方法应该对你有用。
public boolean startsWith(String prefix)
测试此字符串是否以指定的前缀开始。
【具体做法】
StringBuffer line = null;
while(){// 遍历读出来的每一行
sBuffer = 下一行;
if(sBuffer.toString().startsWith( "CoordinatePath=" )){
line = sBuffer;
break;
}
}
String 中有个方法应该对你有用。
public boolean startsWith(String prefix)
测试此字符串是否以指定的前缀开始。
【具体做法】
StringBuffer line = null;
while(){// 遍历读出来的每一行
sBuffer = 下一行;
if(sBuffer.toString().startsWith( "CoordinatePath=" )){
line = sBuffer;
break;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先按换行split,然后找匹配正则的串
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询