Java正则注意

由于需要处理一些sql语句,用正则去掉一些不要的字符,非贪婪模式。
比如我想去掉注释

(^-- [\s\S]*?$)

在sublime text里面测试正则查找并替换,一切ok。我用python也试了,也没有问题。
将该正则用java来跑。死活不行,不能匹配到。

String regex = "^-- [\\s\\S]*?$";
str.replaceAll(regex, "");

最后再这儿发现了问题,原来要加上支持多行的flag
修改后的代码:

String regex = "^-- [\\s\\S]*?$";
Pattern p = Pattern.compile(regex, Pattern.MULTILINE);
Matcher m = p.matcher(str);
if (m != null) {
    str = m.replaceAll("");
}

每种语言的正则或多或少都有一些差别,往往就是不太熟悉这些差别,就浪费时间各种折腾了。记录下来,希望能帮到您。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值