java - 编写正则表达式以在 Java 中提取信息

标签 java regex

我有以下两个文本。

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/

相关文章:

java - 使用 HTML 文件调用 JApplet,在 Firefox 中打开

regex - 我的正则表达式匹配太多。我该如何让它停止?

regex - Logstash Grok过滤器Apache模式

python - 简单的正则表达式问题

php - 根据模式更改字符串

java - 在运行时修改类定义的注释字符串参数

java - Java 中的 Diamond Generic 和 Legacy

java - 如何在 Java 中使用 JsonPath 从 JSON 获取值?

java - 我如何验证我的字符串(括号)- Android?

regex - 获取模式之间的第二次出现