我正在尝试使用正则表达式解析日志。不幸的是,我堆叠在下面的字符串上。尝试查找以时间开头的行
例如:
String p="11:33:00.0 2000 0.0 ....... # 0.0 ....... # 0.0 ....... # 0.0 ...";我有以下代码:
public class Test {
public static void main(String[] args) {
String p="11:33:00.0 2000 0.0 ....... # 0.0 ....... # 0.0 ....... # 0.0 ...";
Pattern pat = Pattern.compile("^\\d\\d\\:\\d\\d*");
Matcher m = pat.matcher(p);
if (m.find()) {
System.out.println(m.start());
System.out.println(p.substring(m.start()));
}
}
}即使我只尝试“^\d\d”,此代码也不打印任何内容。
如果我没记错,'^‘代表以'\d’开头的行,代表任何数字
如果我将pattern更改为,我还尝试将'^‘替换为’\A
pat = Pattern.compile("\\d\\d");它返回位置为6。谁能告诉我为什么第一个代码不工作?:)
THX
发布于 2014-12-08 19:56:46
在我的电脑上,你的示例Test.main运行得很好,也许它依赖于JVM的实现。我认为如果你打开了,那么你也需要用问号关闭正则表达式:
"^\\d\\d?"https://stackoverflow.com/questions/27357368
复制相似问题