我在2個字符串之間的正則表達式有問題。我想在string#和之間獲取值,#但是當我有新行時(在我的情況下\r\n),此正則表達式不起作用。例如:#89899##this is string I haveproblem#我對第2行有問題,因為有新行。如何在正則表達式中排除換行符?我的代碼:public static List parserStringBetween(String param1, String param2, String data) { List result = null; if (param1 != null && !"".equalsIgnoreCase(param1) && param2 != null && !"".equalsIgnoreCase(param2) && data != null && !"".equalsIgnoreCase(data)) { result = new ArrayList<>(); Matcher m = Pattern.compile("\\" + param1 + "(.*?)\\" + param2).matcher(data); while (m.find()) { result.add(m.group(1)); } } return result;}param1和param2是設置之間的字符串,即#這里。如何解決這個問題呢?
2 回答

紅顏莎娜
TA貢獻1842條經(jīng)驗 獲得超13個贊
要同時包含換行符和空格,請使用:
^#[\s\S]*#$
您的Java代碼變?yōu)椋?/p>
Matcher m = Pattern.compile("^" + param1 + "[\\s\\S]*" + param2 + "$").matcher(data);
您也可以使用Pattern.DOTALL
模式。
Matcher m = Pattern.compile("\\" + param1 + "(.*?)\\" + param2, Pattern.DOTALL).matcher(data);
添加回答
舉報
0/150
提交
取消