我有一个带有字符串的大数组。我需要使用数组中的字符串来形成模式。但是,对于文本中的字符串可能跨越多行。构造的模式不适用于多行标志。任何人都可以指出什么是错的?谢谢。Java正则表达式 - 多行
这里是我的代码:
String[] phrases = new String[2];
phrases[0] = "student (male)";
phrases[1] = "worker (female)";
Pattern[] ptn = new Pattern[phrases.length];
int i = 0;
for (String p : phrases)
{
p = Pattern.quote(p);
System.out.println(p);
ptn[i] = Pattern.compile(p+"\\:\\s\\w+",Pattern.MULTILINE);
i++;
}
String text = "student\n(male): John";
System.out.println(text);
for(Pattern p : ptn)
{
Matcher m = p.matcher(text);
while(m.find())
{
System.out.println(m.group());
}
}
你有几个问题,其中最重要的是你的模式永远无法匹配给定的样本输入/输出;你可以重写这些字符串吗? – fge
从文件中读取输入字符串数组。文本也从文件中读取。所以对字符串的所有修改都必须在程序中完成。 – user3321400