为了账号安全,请及时绑定邮箱和手机立即绑定

2个字符之间的Java正则表达式包括换行符或制表符

2个字符之间的Java正则表达式包括换行符或制表符

炎炎设计 2021-04-27 16:33:22
我在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条经验 获得超12个赞

要同时包含换行符和空格,请使用:

^#[\s\S]*#$

这里查看实际情况

您的Java代码变为:

Matcher m = Pattern.compile("^" + param1 + "[\\s\\S]*" + param2 + "$").matcher(data);

您也可以使用Pattern.DOTALL模式。

Matcher m = Pattern.compile("\\" + param1 + "(.*?)\\" + param2, Pattern.DOTALL).matcher(data);



查看完整回答
反对 回复 2021-05-12
  • 2 回答
  • 0 关注
  • 245 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信