gpt4 book ai didi

java - 如何使用java的模式匹配器匹配包含多行的字符串中的单词

转载 作者:行者123 更新时间:2023-12-02 02:47:43 25 4
gpt4 key购买 nike

我有一个包含多行的字符串,我想在该多行中找到特定的模式,例如

String s = "foo\r\nbar\r\nfoo"
+ "foo, bar\r\nak + "
+ "foo, bar\r\nak + "
+ "bar, bar\r\nak + "
+ "blr05\r\nsdfsdkfhsklfh";

上面的字符串是一个多行字符串,我想在其中找到“ak”并获取它在 + 之后的下一个单词,在我的示例中是 foo,bar,blr05

为此,我创建了模式 Pattern.compile("^ak\\s*+\\s*(\\w+)") 但它在 matcher.find( ) 本身返回 false。

最佳答案

默认情况下,正则表达式仅匹配单行内的文本。有两种修改方法。因此,适合您的一种解决方案是编写

Pattern.compile("^ak\\s*+\\s*(\\w+)", Pattern.MULTILINE);

添加额外参数将为您提供一个可跨多行匹配的Pattern

更新
正如 sln 所指出的,您原来的正则表达式没有多大意义,因为 * 后面有 + 。您的意思可能是 "^ak\\s*\\+\\s*(\\w+)" - 也就是说,转义 + 使其成为文字。

关于java - 如何使用java的模式匹配器匹配包含多行的字符串中的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44340023/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com