gpt4 book ai didi

java - 无法弄清楚为什么这个正则表达式不起作用(多行带有 "starts with"限定符的文本)

转载 作者:行者123 更新时间:2023-11-29 07:47:04 25 4
gpt4 key购买 nike

很难找出为什么这行不通,但我的研究表明它应该行得通。我尝试进行这种逻辑匹配 - 行首有 from: 然后任意数量的字符然后行首已发送:。请查看代码,我认为它会打印找到的匹配项但没有:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test2 {
public static void main(String[] args)
{
Pattern lineDividerGuessMatchPattern = Pattern.compile("(?m)(?i)(^from:)(.*?)(^sent:)");

String testString = "cheese \n"
+ "from: cheese\n"
+ "sent: bacon";

Matcher m = lineDividerGuessMatchPattern.matcher(testString);

if(m.find())
System.out.println("Match found");
}
}

最佳答案

您还需要 (?s) 标志(DOTALL 模式)来使 . 匹配行终止符。这找到一个匹配项:

Pattern lineDividerGuessMatchPattern = 
Pattern.compile("(?msi)(^from:)(.*?)(^sent:)");

关于java - 无法弄清楚为什么这个正则表达式不起作用(多行带有 "starts with"限定符的文本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24812770/

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