java 字符串正则
发布网友
发布时间:2022-05-04 15:14
我来回答
共4个回答
热心网友
时间:2022-06-23 10:47
确定条件:
你要的是以"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]
热心网友
时间:2022-06-23 10:48
我觉得你可以在sbuffer读取后几条代码,用来检索你要的信息,比如你把你信息的特征填入,然后每次读完代码后就进行检索是否符合该特征,如果可以就写入,如果不可以直接读下一行代码。这样是要知道你的每一行的特征,如果你知道你要的信息有几句话,还可以用几个循环读读几句后再停止写入,这样就只需要知道开头的就行了。还有许多扩展,你想想吧。
热心网友
时间:2022-06-23 10:48
如果 CoordinatePath=C:/ShelfAOI.txt 是单独的一行 那就好办了。
String 中有个方法应该对你有用。
public boolean startsWith(String prefix)
测试此字符串是否以指定的前缀开始。
【具体做法】
StringBuffer line = null;
while(){// 遍历读出来的每一行
sBuffer = 下一行;
if(sBuffer.toString().startsWith( "CoordinatePath=" )){
line = sBuffer;
break;
}
}
热心网友
时间:2022-06-23 10:49
先按换行split,然后找匹配正则的串