我有以下两个文本。
1) v1.0 - 80 s200 + 2013-10-17T05:59:59-0700 1TZY6R5HERP7SJRRYDYV 69.71.202.109 7802 41587 495307 30595 HTTP/1.1 POST /gp/ppd
2) access-1080.2013-10-17-05.us-online-cpp-portlet-live-1d-i-752c3b12.us-east-1.phnew.com.gz
我需要从他们那里得到这些数据
从我需要的第一个 Regex 开始:- 1TZY6R5HERP7SJRRYDYV
.让我们称之为accessId
.这始终由 20 个字符组成,是 0-9 数字和大写字母 [A-Z] 的组合
我尝试使用 [A-Z0-9]{20}
没有运气。
Pattern p = Pattern.compile([A-Z0-9]{20});
Matcher m = p.matcher(myString);
我也在寻找一个与模式匹配的 java API,如果它匹配,就会给我模式作为结果
从第二个开始我需要us-online-cpp-portlet-live-1d-i-752c3b12.us-east-1.phnew.com
.我很难破解这个。
任何帮助都是有用的。
最佳答案
您需要调用 Matcher#find()
然后调用 Matcher#group()
以获得匹配结果:
Pattern p = Pattern.compile("[A-Z0-9]{20}");
Matcher m = p.matcher(myString);
String accessId = null;
if (m.find())
accessId = m.group();
关于java - 编写正则表达式以在 Java 中提取信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19428443/