【发布时间】:2023-03-18 18:24:02
【问题描述】:
上下文:我正在开发 Automate(Android 应用)中的自动化流程。我在字符串中有curl 的输出,列出了带有值的标题。我想用正则表达式解析 Location 标头值。
Foo: bar
Location: http://localhost
Abc: xyz
如何使用单个正则表达式获取我的 http://localhost 值?除了 Android 应用程序的上下文,我在 Intellij 中针对 jdk8 进行了尝试:如果正则表达式在那里工作,它也应该在应用程序中工作。我已经阅读了手册的某些部分(了解过程中不情愿的量词),但没有任何效果。我的最后一次尝试是(?iums).*?^Location:\s*(https://\S+)$.*,但是由于某种原因我仍然无法匹配。
非常感谢
编辑:为方便起见:
public static void main(String[] args) {
String match = Pattern.compile("(?iums).*?^Location:\\s*(https://\\S+)$.*")
.matcher("Foo: bar\nLocation: https://foo.bar\nabc: xyz")
.group(1);
System.out.println(match);
}
奇怪的是,Intellij 声称它确实匹配:
【问题讨论】:
-
您忘记使用
.find()或matches()运行匹配器 -
@WiktorStribiżew 确实是这样,谢谢