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]
展开
 我来答
弑神之风
2009-09-01 · TA获得超过306个赞
知道小有建树答主
回答量:78
采纳率:0%
帮助的人:118万
展开全部
确定条件:
你要的是以"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]
深透还痛快的小白桦P
2009-09-01
知道答主
回答量:8
采纳率:0%
帮助的人:6223
展开全部
我觉得你可以在sbuffer读取后几条代码,用来检索你要的信息,比如你把你信息的特征填入,然后每次读完代码后就进行检索是否符合该特征,如果可以就写入,如果不可以直接读下一行代码。这样是要知道你的每一行的特征,如果你知道你要的信息有几句话,还可以用几个循环读读几句后再停止写入,这样就只需要知道开头的就行了。还有许多扩展,你想想吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
王艳芳java
2009-09-01 · TA获得超过148个赞
知道答主
回答量:124
采纳率:0%
帮助的人:125万
展开全部
如果 CoordinatePath=C:/ShelfAOI.txt 是单独的一行 那就好办了。

String 中有个方法应该对你有用。

public boolean startsWith(String prefix)
测试此字符串是否以指定的前缀开始。

【具体做法】
StringBuffer line = null;
while(){// 遍历读出来的每一行
sBuffer = 下一行;
if(sBuffer.toString().startsWith( "CoordinatePath=" )){
line = sBuffer;
break;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友4d2210204
2009-09-01 · TA获得超过238个赞
知道答主
回答量:103
采纳率:0%
帮助的人:128万
展开全部
先按换行split,然后找匹配正则的串
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式