【发布时间】:2017-04-19 19:13:12
【问题描述】:
我有几个粗略的字符串:
String s = "Rendering content from websiteNAme using user agent userAgentNameWithSpaces ; for user username ; at time someTime";
我想提取 websiteName、userAgentNameWithSpaces、username 和 someTime 的值。 我已经尝试了以下代码。
private static final Pattern USER_NAME_PATTERN = Pattern.compile("for user.*;");
final Matcher matcher = USER_NAME_PATTERN.matcher(line);
matcher.find() ? Optional.of(matcher.group(group)) : Optional.empty();
它返回整个字符串“用户用户名”之后我必须用空字符串替换用户字符串以获取用户名。 但是,我想知道是否有正则表达式可以直接获取用户名?
【问题讨论】:
-
你有没有尝试过?你的
String格式也是每次都一样吗? -
是的,我尝试了以下代码。 private static final Pattern USER_NAME_PATTERN = Pattern.compile("for user.*;");最终匹配器 matcher = USER_NAME_PATTERN.matcher(line); matcher.find() ? Optional.of(matcher.group(group)) : Optional.empty();它返回整个字符串“for user username”,之后我必须用空字符串替换 for user 字符串以获取用户名。但是,我想知道是否有正则表达式可以直接获取用户名?
-
用内容编辑您的问题。
-
我已经更新了问题。
标签: java regex pattern-matching