我有一個帶有字符串的大數組。我需要使用數組中的字符串來形成模式。但是,對於文本中的字符串可能跨越多行。構造的模式不適用於多行標誌。任何人都可以指出什麼是錯的?謝謝。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